Message ID | 20240215132634.474055-1-toke@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Change BPF_TEST_RUN use the system page pool for live XDP frames | expand |
From: Toke Høiland-Jørgensen <toke@redhat.com> Date: Thu, 15 Feb 2024 14:26:29 +0100 > Now that we have a system-wide page pool, we can use that for the live > frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and > avoid the cost of creating a separate page pool instance for each > syscall invocation. See the individual patches for more details. Tested xdp-trafficgen on my development tree[0], no regressions from the net-next with my patch which increases live frames PP size. Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com> Tested-by: Alexander Lobakin <aleksander.lobakin@intel.com> (with some cosmetics like[1]) > > Toke Høiland-Jørgensen (3): > net: Register system page pool as an XDP memory model > bpf: test_run: Use system page pool for XDP live frame mode > bpf: test_run: Fix cacheline alignment of live XDP frame data > structures > > include/linux/netdevice.h | 1 + > net/bpf/test_run.c | 138 +++++++++++++++++++------------------- > net/core/dev.c | 13 +++- > 3 files changed, 81 insertions(+), 71 deletions(-) > [0] https://github.com/alobakin/linux/commits/idpf-libie-new [1] https://github.com/alobakin/linux/commit/62b4cb03486a Thanks, Olek
Alexander Lobakin <aleksander.lobakin@intel.com> writes: > From: Toke Høiland-Jørgensen <toke@redhat.com> > Date: Thu, 15 Feb 2024 14:26:29 +0100 > >> Now that we have a system-wide page pool, we can use that for the live >> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >> avoid the cost of creating a separate page pool instance for each >> syscall invocation. See the individual patches for more details. > > Tested xdp-trafficgen on my development tree[0], no regressions from the > net-next with my patch which increases live frames PP size. > > Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com> > Tested-by: Alexander Lobakin <aleksander.lobakin@intel.com> Great, thanks for taking it for a spin! :) -Toke
From: Toke Høiland-Jørgensen <toke@redhat.com> Date: Thu, 15 Feb 2024 18:06:42 +0100 > Alexander Lobakin <aleksander.lobakin@intel.com> writes: > >> From: Toke Høiland-Jørgensen <toke@redhat.com> >> Date: Thu, 15 Feb 2024 14:26:29 +0100 >> >>> Now that we have a system-wide page pool, we can use that for the live >>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>> avoid the cost of creating a separate page pool instance for each >>> syscall invocation. See the individual patches for more details. >> >> Tested xdp-trafficgen on my development tree[0], no regressions from the >> net-next with my patch which increases live frames PP size. >> >> Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com> >> Tested-by: Alexander Lobakin <aleksander.lobakin@intel.com> > > Great, thanks for taking it for a spin! :) BTW, you remove the usage of page_pool->slow.init_callback, maybe we could remove it completely? > > -Toke Thanks, Olek
Alexander Lobakin <aleksander.lobakin@intel.com> writes: > From: Toke Høiland-Jørgensen <toke@redhat.com> > Date: Thu, 15 Feb 2024 18:06:42 +0100 > >> Alexander Lobakin <aleksander.lobakin@intel.com> writes: >> >>> From: Toke Høiland-Jørgensen <toke@redhat.com> >>> Date: Thu, 15 Feb 2024 14:26:29 +0100 >>> >>>> Now that we have a system-wide page pool, we can use that for the live >>>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>>> avoid the cost of creating a separate page pool instance for each >>>> syscall invocation. See the individual patches for more details. >>> >>> Tested xdp-trafficgen on my development tree[0], no regressions from the >>> net-next with my patch which increases live frames PP size. >>> >>> Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com> >>> Tested-by: Alexander Lobakin <aleksander.lobakin@intel.com> >> >> Great, thanks for taking it for a spin! :) > > BTW, you remove the usage of page_pool->slow.init_callback, maybe we > could remove it completely? Ohh, you're right. Totally forgot that this was something I introduced for this use case :D I'll send a follow-up to get rid of it after this lands. -Toke
Toke Høiland-Jørgensen <toke@redhat.com> writes: > Now that we have a system-wide page pool, we can use that for the live > frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and > avoid the cost of creating a separate page pool instance for each > syscall invocation. See the individual patches for more details. > > Toke Høiland-Jørgensen (3): > net: Register system page pool as an XDP memory model > bpf: test_run: Use system page pool for XDP live frame mode > bpf: test_run: Fix cacheline alignment of live XDP frame data > structures > > include/linux/netdevice.h | 1 + > net/bpf/test_run.c | 138 +++++++++++++++++++------------------- > net/core/dev.c | 13 +++- > 3 files changed, 81 insertions(+), 71 deletions(-) Hi maintainers This series is targeting net-next, but it's listed as delegate:bpf in patchwork[0]; is that a mistake? Do I need to do anything more to nudge it along? -Toke [0] https://patchwork.kernel.org/project/netdevbpf/list/?series=826384
On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: > Toke Høiland-Jørgensen <toke@redhat.com> writes: > >> Now that we have a system-wide page pool, we can use that for the live >> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >> avoid the cost of creating a separate page pool instance for each >> syscall invocation. See the individual patches for more details. >> >> Toke Høiland-Jørgensen (3): >> net: Register system page pool as an XDP memory model >> bpf: test_run: Use system page pool for XDP live frame mode >> bpf: test_run: Fix cacheline alignment of live XDP frame data >> structures >> >> include/linux/netdevice.h | 1 + >> net/bpf/test_run.c | 138 +++++++++++++++++++------------------- >> net/core/dev.c | 13 +++- >> 3 files changed, 81 insertions(+), 71 deletions(-) > > Hi maintainers > > This series is targeting net-next, but it's listed as delegate:bpf in > patchwork[0]; is that a mistake? Do I need to do anything more to nudge it > along? I moved it over to netdev, it would be good next time if there are dependencies which are in net-next but not yet bpf-next to clearly state them given from this series the majority touches the bpf test infra code. > -Toke > > [0] https://patchwork.kernel.org/project/netdevbpf/list/?series=826384
On Tue, 2024-02-20 at 09:39 +0100, Daniel Borkmann wrote: > On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: > > Toke Høiland-Jørgensen <toke@redhat.com> writes: > > > > > Now that we have a system-wide page pool, we can use that for the live > > > frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and > > > avoid the cost of creating a separate page pool instance for each > > > syscall invocation. See the individual patches for more details. > > > > > > Toke Høiland-Jørgensen (3): > > > net: Register system page pool as an XDP memory model > > > bpf: test_run: Use system page pool for XDP live frame mode > > > bpf: test_run: Fix cacheline alignment of live XDP frame data > > > structures > > > > > > include/linux/netdevice.h | 1 + > > > net/bpf/test_run.c | 138 +++++++++++++++++++------------------- > > > net/core/dev.c | 13 +++- > > > 3 files changed, 81 insertions(+), 71 deletions(-) > > > > Hi maintainers > > > > This series is targeting net-next, but it's listed as delegate:bpf in > > patchwork[0]; is that a mistake? Do I need to do anything more to nudge it > > along? > > I moved it over to netdev, it would be good next time if there are dependencies > which are in net-next but not yet bpf-next to clearly state them given from this > series the majority touches the bpf test infra code. This series apparently causes bpf self-tests failures: https://github.com/kernel-patches/bpf/actions/runs/7929088890/job/21648828278 I'm unsure if that is blocking, or just a CI glitch. The series LGTM, but I think it would be better if someone from the ebpf team could also have a look. Thanks! Paolo
On 2/20/24 10:03 AM, Paolo Abeni wrote: > On Tue, 2024-02-20 at 09:39 +0100, Daniel Borkmann wrote: >> On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: >>> Toke Høiland-Jørgensen <toke@redhat.com> writes: >>> >>>> Now that we have a system-wide page pool, we can use that for the live >>>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>>> avoid the cost of creating a separate page pool instance for each >>>> syscall invocation. See the individual patches for more details. >>>> >>>> Toke Høiland-Jørgensen (3): >>>> net: Register system page pool as an XDP memory model >>>> bpf: test_run: Use system page pool for XDP live frame mode >>>> bpf: test_run: Fix cacheline alignment of live XDP frame data >>>> structures >>>> >>>> include/linux/netdevice.h | 1 + >>>> net/bpf/test_run.c | 138 +++++++++++++++++++------------------- >>>> net/core/dev.c | 13 +++- >>>> 3 files changed, 81 insertions(+), 71 deletions(-) >>> >>> Hi maintainers >>> >>> This series is targeting net-next, but it's listed as delegate:bpf in >>> patchwork[0]; is that a mistake? Do I need to do anything more to nudge it >>> along? >> >> I moved it over to netdev, it would be good next time if there are dependencies >> which are in net-next but not yet bpf-next to clearly state them given from this >> series the majority touches the bpf test infra code. > > This series apparently causes bpf self-tests failures: > > https://github.com/kernel-patches/bpf/actions/runs/7929088890/job/21648828278 > > I'm unsure if that is blocking, or just a CI glitch. > > The series LGTM, but I think it would be better if someone from the > ebpf team could also have a look. The CI was not able to apply the patches, so this looks unrelated : Cmd('git') failed due to: exit code(128) cmdline: git am --3way stdout: 'Applying: net: Register system page pool as an XDP memory model Patch failed at 0001 net: Register system page pool as an XDP memory model When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".' stderr: 'error: sha1 information is lacking or useless (include/linux/netdevice.h). error: could not build fake ancestor hint: Use 'git am --show-current-patch=diff' to see the failed patch'
Daniel Borkmann <daniel@iogearbox.net> writes: > On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: >> Toke Høiland-Jørgensen <toke@redhat.com> writes: >> >>> Now that we have a system-wide page pool, we can use that for the live >>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>> avoid the cost of creating a separate page pool instance for each >>> syscall invocation. See the individual patches for more details. >>> >>> Toke Høiland-Jørgensen (3): >>> net: Register system page pool as an XDP memory model >>> bpf: test_run: Use system page pool for XDP live frame mode >>> bpf: test_run: Fix cacheline alignment of live XDP frame data >>> structures >>> >>> include/linux/netdevice.h | 1 + >>> net/bpf/test_run.c | 138 +++++++++++++++++++------------------- >>> net/core/dev.c | 13 +++- >>> 3 files changed, 81 insertions(+), 71 deletions(-) >> >> Hi maintainers >> >> This series is targeting net-next, but it's listed as delegate:bpf in >> patchwork[0]; is that a mistake? Do I need to do anything more to nudge it >> along? > > I moved it over to netdev, it would be good next time if there are dependencies > which are in net-next but not yet bpf-next to clearly state them given from this > series the majority touches the bpf test infra code. Right, I thought that was what I was doing by targeting them at net-next (in the subject). What's the proper way to do this, then, just noting it in the cover letter? :) -Toke
On 2/20/24 12:23 PM, Toke Høiland-Jørgensen wrote: > Daniel Borkmann <daniel@iogearbox.net> writes: >> On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: >>> Toke Høiland-Jørgensen <toke@redhat.com> writes: >>> >>>> Now that we have a system-wide page pool, we can use that for the live >>>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>>> avoid the cost of creating a separate page pool instance for each >>>> syscall invocation. See the individual patches for more details. >>>> >>>> Toke Høiland-Jørgensen (3): >>>> net: Register system page pool as an XDP memory model >>>> bpf: test_run: Use system page pool for XDP live frame mode >>>> bpf: test_run: Fix cacheline alignment of live XDP frame data >>>> structures >>>> >>>> include/linux/netdevice.h | 1 + >>>> net/bpf/test_run.c | 138 +++++++++++++++++++------------------- >>>> net/core/dev.c | 13 +++- >>>> 3 files changed, 81 insertions(+), 71 deletions(-) >>> >>> Hi maintainers >>> >>> This series is targeting net-next, but it's listed as delegate:bpf in >>> patchwork[0]; is that a mistake? Do I need to do anything more to nudge it >>> along? >> >> I moved it over to netdev, it would be good next time if there are dependencies >> which are in net-next but not yet bpf-next to clearly state them given from this >> series the majority touches the bpf test infra code. > > Right, I thought that was what I was doing by targeting them at net-next > (in the subject). What's the proper way to do this, then, just noting it > in the cover letter? :) An explicit lore link to the series this depends on would be best. Thanks, Daniel
Daniel Borkmann <daniel@iogearbox.net> writes: > On 2/20/24 12:23 PM, Toke Høiland-Jørgensen wrote: >> Daniel Borkmann <daniel@iogearbox.net> writes: >>> On 2/19/24 7:52 PM, Toke Høiland-Jørgensen wrote: >>>> Toke Høiland-Jørgensen <toke@redhat.com> writes: >>>> >>>>> Now that we have a system-wide page pool, we can use that for the live >>>>> frame mode of BPF_TEST_RUN (used by the XDP traffic generator), and >>>>> avoid the cost of creating a separate page pool instance for each >>>>> syscall invocation. See the individual patches for more details. >>>>> >>>>> Toke Høiland-Jørgensen (3): >>>>> net: Register system page pool as an XDP memory model >>>>> bpf: test_run: Use system page pool for XDP live frame mode >>>>> bpf: test_run: Fix cacheline alignment of live XDP frame data >>>>> structures >>>>> >>>>> include/linux/netdevice.h | 1 + >>>>> net/bpf/test_run.c | 138 +++++++++++++++++++------------------- >>>>> net/core/dev.c | 13 +++- >>>>> 3 files changed, 81 insertions(+), 71 deletions(-) >>>> >>>> Hi maintainers >>>> >>>> This series is targeting net-next, but it's listed as delegate:bpf in >>>> patchwork[0]; is that a mistake? Do I need to do anything more to nudge it >>>> along? >>> >>> I moved it over to netdev, it would be good next time if there are dependencies >>> which are in net-next but not yet bpf-next to clearly state them given from this >>> series the majority touches the bpf test infra code. >> >> Right, I thought that was what I was doing by targeting them at net-next >> (in the subject). What's the proper way to do this, then, just noting it >> in the cover letter? :) > > An explicit lore link to the series this depends on would be best. Alright; seems I'm respinning anyway, so will add one in the next revision :) -Toke