mbox series

[bpf,v2,0/7] selftests/bpf: Restore test_offload.py to working order

Message ID 160708272217.192754.14019805999368221369.stgit@toke.dk (mailing list archive)
Headers show
Series selftests/bpf: Restore test_offload.py to working order | expand

Message

Toke Høiland-Jørgensen Dec. 4, 2020, 11:52 a.m. UTC
This series restores the test_offload.py selftest to working order. It seems a
number of subtle behavioural changes have crept into various subsystems which
broke test_offload.py in a number of ways. Most of these are fairly benign
changes where small adjustments to the test script seems to be the best fix, but
one is an actual kernel bug that I've observed in the wild caused by a bad
interaction between xdp_attachment_flags_ok() and the rework of XDP program
handling in the core netdev code.

Patch 1 fixes the bug by removing xdp_attachment_flags_ok(), and the reminder of
the patches are adjustments to test_offload.py, including a new feature for
netdevsim to force a BPF verification fail. Please see the individual patches
for details.

Changelog:

v2:
- Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
- Better packing of struct nsim_dev

---

Toke Høiland-Jørgensen (7):
      xdp: remove the xdp_attachment_flags_ok() callback
      selftests/bpf/test_offload.py: Remove check for program load flags match
      netdevsim: Add debugfs toggle to reject BPF programs in verifier
      selftests/bpf/test_offload.py: only check verifier log on verification fails
      selftests/bpf/test_offload.py: fix expected case of extack messages
      selftests/bpf/test_offload.py: reset ethtool features after failed setting
      selftests/bpf/test_offload.py: filter bpftool internal map when counting maps


 .../ethernet/netronome/nfp/nfp_net_common.c   |  6 ---
 drivers/net/ethernet/ti/cpsw_priv.c           |  3 --
 drivers/net/netdevsim/bpf.c                   | 15 ++++--
 drivers/net/netdevsim/netdevsim.h             |  1 +
 include/net/xdp.h                             |  2 -
 net/core/dev.c                                | 22 +++++++-
 net/core/xdp.c                                | 12 -----
 tools/testing/selftests/bpf/test_offload.py   | 53 ++++++++++---------
 8 files changed, 60 insertions(+), 54 deletions(-)

Comments

Toke Høiland-Jørgensen Dec. 8, 2020, 2:18 p.m. UTC | #1
Toke Høiland-Jørgensen <toke@redhat.com> writes:

> This series restores the test_offload.py selftest to working order. It seems a
> number of subtle behavioural changes have crept into various subsystems which
> broke test_offload.py in a number of ways. Most of these are fairly benign
> changes where small adjustments to the test script seems to be the best fix, but
> one is an actual kernel bug that I've observed in the wild caused by a bad
> interaction between xdp_attachment_flags_ok() and the rework of XDP program
> handling in the core netdev code.
>
> Patch 1 fixes the bug by removing xdp_attachment_flags_ok(), and the reminder of
> the patches are adjustments to test_offload.py, including a new feature for
> netdevsim to force a BPF verification fail. Please see the individual patches
> for details.
>
> Changelog:
>
> v2:
> - Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
> - Better packing of struct nsim_dev

Hi Jakub

Any feedback on v2? Would be great to get it merged before the final
5.10 release :)

-Toke
Jakub Kicinski Dec. 8, 2020, 5:03 p.m. UTC | #2
On Tue, 08 Dec 2020 15:18:31 +0100 Toke Høiland-Jørgensen wrote:
> Toke Høiland-Jørgensen <toke@redhat.com> writes:
> 
> > This series restores the test_offload.py selftest to working order. It seems a
> > number of subtle behavioural changes have crept into various subsystems which
> > broke test_offload.py in a number of ways. Most of these are fairly benign
> > changes where small adjustments to the test script seems to be the best fix, but
> > one is an actual kernel bug that I've observed in the wild caused by a bad
> > interaction between xdp_attachment_flags_ok() and the rework of XDP program
> > handling in the core netdev code.
> >
> > Patch 1 fixes the bug by removing xdp_attachment_flags_ok(), and the reminder of
> > the patches are adjustments to test_offload.py, including a new feature for
> > netdevsim to force a BPF verification fail. Please see the individual patches
> > for details.
> >
> > Changelog:
> >
> > v2:
> > - Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
> > - Better packing of struct nsim_dev  
> 
> Any feedback on v2? Would be great to get it merged before the final
> 5.10 release :)

LGTM but if my opinion mattered this could would not have been changed
in the first place :)
Toke Høiland-Jørgensen Dec. 8, 2020, 10 p.m. UTC | #3
Jakub Kicinski <kuba@kernel.org> writes:

> On Tue, 08 Dec 2020 15:18:31 +0100 Toke Høiland-Jørgensen wrote:
>> Toke Høiland-Jørgensen <toke@redhat.com> writes:
>> 
>> > This series restores the test_offload.py selftest to working order. It seems a
>> > number of subtle behavioural changes have crept into various subsystems which
>> > broke test_offload.py in a number of ways. Most of these are fairly benign
>> > changes where small adjustments to the test script seems to be the best fix, but
>> > one is an actual kernel bug that I've observed in the wild caused by a bad
>> > interaction between xdp_attachment_flags_ok() and the rework of XDP program
>> > handling in the core netdev code.
>> >
>> > Patch 1 fixes the bug by removing xdp_attachment_flags_ok(), and the reminder of
>> > the patches are adjustments to test_offload.py, including a new feature for
>> > netdevsim to force a BPF verification fail. Please see the individual patches
>> > for details.
>> >
>> > Changelog:
>> >
>> > v2:
>> > - Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
>> > - Better packing of struct nsim_dev  
>> 
>> Any feedback on v2? Would be great to get it merged before the final
>> 5.10 release :)
>
> LGTM but if my opinion mattered this could would not have been changed
> in the first place :)

Heh, right. Well I, for one, value your input, so thanks for taking a
look :)

-Toke