From: Hangbin Liu <liuhangbin@gmail.com>
To: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org,
"Daniel Borkmann" <daniel@iogearbox.net>,
"John Fastabend" <john.fastabend@gmail.com>,
"Yonghong Song" <yhs@fb.com>,
"Toke Høiland-Jørgensen" <toke@redhat.com>
Subject: Re: [PATCHv8 bpf-next] samples/bpf: add xdp program on egress for xdp_redirect_map
Date: Wed, 20 Jan 2021 12:16:28 +0800 [thread overview]
Message-ID: <20210120041628.GH1421720@Leo-laptop-t470s> (raw)
In-Reply-To: <20210119155127.1f906018@carbon>
On Tue, Jan 19, 2021 at 03:51:27PM +0100, Jesper Dangaard Brouer wrote:
> > @@ -73,13 +90,63 @@ int xdp_redirect_map_prog(struct xdp_md *ctx)
> >
> > /* count packet in global counter */
> > value = bpf_map_lookup_elem(&rxcnt, &key);
> > - if (value)
> > + if (value) {
> > *value += 1;
> > + if (*value % 2 == 1)
> > + vport = 1;
>
> This will also change the base behavior of the program, e.g when we are
> not testing the 2nd xdp-prog. It will become hard to compare the
> performance between xdp_redirect and xdp_redirect_map.
I just did a test with/without this patch on 5.10 using pktgen
By ./xdp_redirect_map -N/-S eno1 eno1
Without this patch
- S 1.8M pps
- N 7.4M pps
With this patch
- S 1.9M pps
- N 7.4M pps
So I don't see much difference.
>
> It looks like you are populating vport=0 and vport=1 with the same ifindex.
> Thus, this code is basically doing packet reordering, due to the per
> CPU bulking layer (of 16 packets) in devmap.
> Is this the intended behavior?
I didn't expect this could cause reordering. If we want only do it when
attached the 2nd prog, we need add a check like
key = 1;
value = bpf_map_lookup_elem(&tx_port_native , &key);
if (value)
do_2nd_prog_test
else
do_nothing_and_redirect_with_port_0
But an extra bpf_map_lookup_elem() for every packet may cause more performance
drop. So WDYT?
Thanks
Hangbin
next prev parent reply other threads:[~2021-01-20 4:18 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 12:46 [PATCH bpf-next] samples/bpf: add xdp_redirect_map with xdp_prog support Hangbin Liu
2020-11-10 14:25 ` Jesper Dangaard Brouer
2020-11-10 15:24 ` Maciej Fijalkowski
2020-11-11 1:12 ` Hangbin Liu
2020-11-26 8:43 ` [PATCHv2 bpf-next] samples/bpf: add xdp program on egress for xdp_redirect_map Hangbin Liu
2020-11-26 10:51 ` Jesper Dangaard Brouer
2020-11-26 14:19 ` Hangbin Liu
2020-11-27 6:31 ` Yonghong Song
2020-11-30 7:51 ` Hangbin Liu
2020-11-30 9:32 ` Jesper Dangaard Brouer
2020-11-30 13:10 ` Hangbin Liu
2020-11-30 15:12 ` Jesper Dangaard Brouer
2020-11-30 16:07 ` Toke Høiland-Jørgensen
2020-12-08 8:18 ` [PATCHv3 " Hangbin Liu
2020-12-08 10:39 ` Jesper Dangaard Brouer
2020-12-08 11:11 ` Hangbin Liu
2020-12-08 12:01 ` [PATCHv4 " Hangbin Liu
2020-12-11 0:15 ` Daniel Borkmann
2020-12-11 2:40 ` [PATCHv5 " Hangbin Liu
2021-01-14 14:27 ` [PATCHv6 " Hangbin Liu
2021-01-14 21:01 ` Yonghong Song
2021-01-15 4:17 ` Hangbin Liu
2021-01-15 6:24 ` [PATCHv7 " Hangbin Liu
2021-01-15 16:57 ` Yonghong Song
2021-01-18 22:46 ` Daniel Borkmann
2021-01-19 3:12 ` [PATCHv8 " Hangbin Liu
2021-01-19 14:51 ` Jesper Dangaard Brouer
2021-01-20 4:16 ` Hangbin Liu [this message]
2021-01-21 13:06 ` [PATCHv9 " Hangbin Liu
2021-01-21 15:05 ` Jesper Dangaard Brouer
2021-01-22 2:50 ` [PATCHv10 " Hangbin Liu
2021-01-22 10:32 ` Jesper Dangaard Brouer
2021-01-22 23:30 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210120041628.GH1421720@Leo-laptop-t470s \
--to=liuhangbin@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=brouer@redhat.com \
--cc=daniel@iogearbox.net \
--cc=john.fastabend@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=toke@redhat.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.