mbox series

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

Message ID 160752225643.110217.4104692937165406635.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. 9, 2020, 1:57 p.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:

v4:
- Accidentally truncated the Fixes: hashes in patches 3/4 to 11 chars

v3:
- Add Fixes: tags

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


 drivers/net/netdevsim/bpf.c                 | 12 ++++-
 drivers/net/netdevsim/netdevsim.h           |  1 +
 tools/testing/selftests/bpf/test_offload.py | 53 +++++++++++----------
 3 files changed, 40 insertions(+), 26 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Dec. 9, 2020, 3:40 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf.git (refs/heads/master):

On Wed, 09 Dec 2020 14:57:36 +0100 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [bpf,v4,1/7] xdp: remove the xdp_attachment_flags_ok() callback
    https://git.kernel.org/bpf/bpf/c/998f17296234
  - [bpf,v4,2/7] selftests/bpf/test_offload.py: Remove check for program load flags match
    https://git.kernel.org/bpf/bpf/c/0b5b6e747c86
  - [bpf,v4,3/7] netdevsim: Add debugfs toggle to reject BPF programs in verifier
    https://git.kernel.org/bpf/bpf/c/e4ff5aa46940
  - [bpf,v4,4/7] selftests/bpf/test_offload.py: only check verifier log on verification fails
    https://git.kernel.org/bpf/bpf/c/d8b5e76ae4e0
  - [bpf,v4,5/7] selftests/bpf/test_offload.py: fix expected case of extack messages
    https://git.kernel.org/bpf/bpf/c/852c2ee338f0
  - [bpf,v4,6/7] selftests/bpf/test_offload.py: reset ethtool features after failed setting
    https://git.kernel.org/bpf/bpf/c/766e62b7fcd2
  - [bpf,v4,7/7] selftests/bpf/test_offload.py: filter bpftool internal map when counting maps
    https://git.kernel.org/bpf/bpf/c/8158cad13435

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
Daniel Borkmann Dec. 9, 2020, 3:40 p.m. UTC | #2
On 12/9/20 2:57 PM, Toke Høiland-Jørgensen wrote:
> 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:
> 
> v4:
> - Accidentally truncated the Fixes: hashes in patches 3/4 to 11 chars
> v3:
> - Add Fixes: tags
> v2:
> - Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
> - Better packing of struct nsim_dev

Applied, thanks! I took the liberty to document the prior review with 'LGTM' as
an Ack so it's documented in the git log as well.
Toke Høiland-Jørgensen Dec. 9, 2020, 4:35 p.m. UTC | #3
Daniel Borkmann <daniel@iogearbox.net> writes:

> On 12/9/20 2:57 PM, Toke Høiland-Jørgensen wrote:
>> 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:
>> 
>> v4:
>> - Accidentally truncated the Fixes: hashes in patches 3/4 to 11 chars
>> v3:
>> - Add Fixes: tags
>> v2:
>> - Replace xdp_attachment_flags_ok() with a check in dev_xdp_attach()
>> - Better packing of struct nsim_dev
>
> Applied, thanks! I took the liberty to document the prior review with 'LGTM' as
> an Ack so it's documented in the git log as well.

SGTM, thanks! :)

-Toke