mbox series

[net-next,v2,0/7] selftests: drv-net: improve the queue test for XSK

Message ID 20250219234956.520599-1-kuba@kernel.org (mailing list archive)
Headers show
Series selftests: drv-net: improve the queue test for XSK | expand

Message

Jakub Kicinski Feb. 19, 2025, 11:49 p.m. UTC
We see some flakes in the the XSK test:

   Exception| Traceback (most recent call last):
   Exception|   File "/home/virtme/testing-18/tools/testing/selftests/net/lib/py/ksft.py", line 218, in ksft_run
   Exception|     case(*args)
   Exception|   File "/home/virtme/testing-18/tools/testing/selftests/drivers/net/./queues.py", line 53, in check_xdp
   Exception|     ksft_eq(q['xsk'], {})
   Exception| KeyError: 'xsk'

I think it's because the method or running the helper in the background
is racy. Add more solid infra for waiting for a background helper to be
initialized.

v2:
 - add patch 1, 3 and 4
 - redo patch 5
v1: https://lore.kernel.org/20250218195048.74692-1-kuba@kernel.org

Jakub Kicinski (7):
  selftests: drv-net: add a warning for bkg + shell + terminate
  selftests: drv-net: use cfg.rpath() in netlink xsk attr test
  selftests: drv-net: add missing new line in xdp_helper
  selftests: drv-net: probe for AF_XDP sockets more explicitly
  selftests: drv-net: add a way to wait for a local process
  selftests: drv-net: improve the use of ksft helpers in XSK queue test
  selftests: drv-net: rename queues check_xdp to check_xsk

 .../selftests/drivers/net/xdp_helper.c        | 63 ++++++++++++++--
 tools/testing/selftests/drivers/net/queues.py | 61 ++++++++--------
 tools/testing/selftests/net/lib/py/ksft.py    |  5 ++
 tools/testing/selftests/net/lib/py/utils.py   | 72 +++++++++++++++++--
 4 files changed, 161 insertions(+), 40 deletions(-)

Comments

Joe Damato Feb. 20, 2025, 7:35 p.m. UTC | #1
On Wed, Feb 19, 2025 at 03:49:49PM -0800, Jakub Kicinski wrote:
> We see some flakes in the the XSK test:
> 
>    Exception| Traceback (most recent call last):
>    Exception|   File "/home/virtme/testing-18/tools/testing/selftests/net/lib/py/ksft.py", line 218, in ksft_run
>    Exception|     case(*args)
>    Exception|   File "/home/virtme/testing-18/tools/testing/selftests/drivers/net/./queues.py", line 53, in check_xdp
>    Exception|     ksft_eq(q['xsk'], {})
>    Exception| KeyError: 'xsk'
> 
> I think it's because the method or running the helper in the background
> is racy. Add more solid infra for waiting for a background helper to be
> initialized.
> 
> v2:
>  - add patch 1, 3 and 4
>  - redo patch 5
> v1: https://lore.kernel.org/20250218195048.74692-1-kuba@kernel.org

Thanks for doing this work.

I tested this on my system in four cases:
  - XDP disabled:
    - NETIF=mlx5
    - NETIF unset
  - XDP enabled
    - NETIF=mlx5
    - NETIF unset

The warning in patch 1 does not print on my system, but the code
changes introduced in patch 5/7 fix the hang.

I've already given my Reviewed-by / Acked-by on all patches, so not
sure if it matters but since I did test this as described above:

Tested-by: Joe Damato <jdamato@fastly.com>
patchwork-bot+netdevbpf@kernel.org Feb. 21, 2025, 2:17 a.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 19 Feb 2025 15:49:49 -0800 you wrote:
> We see some flakes in the the XSK test:
> 
>    Exception| Traceback (most recent call last):
>    Exception|   File "/home/virtme/testing-18/tools/testing/selftests/net/lib/py/ksft.py", line 218, in ksft_run
>    Exception|     case(*args)
>    Exception|   File "/home/virtme/testing-18/tools/testing/selftests/drivers/net/./queues.py", line 53, in check_xdp
>    Exception|     ksft_eq(q['xsk'], {})
>    Exception| KeyError: 'xsk'
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/7] selftests: drv-net: add a warning for bkg + shell + terminate
    https://git.kernel.org/netdev/net-next/c/846742f7e32f
  - [net-next,v2,2/7] selftests: drv-net: use cfg.rpath() in netlink xsk attr test
    https://git.kernel.org/netdev/net-next/c/dabd31baa3b5
  - [net-next,v2,3/7] selftests: drv-net: add missing new line in xdp_helper
    https://git.kernel.org/netdev/net-next/c/bab59dcf71fb
  - [net-next,v2,4/7] selftests: drv-net: probe for AF_XDP sockets more explicitly
    (no matching commit)
  - [net-next,v2,5/7] selftests: drv-net: add a way to wait for a local process
    (no matching commit)
  - [net-next,v2,6/7] selftests: drv-net: improve the use of ksft helpers in XSK queue test
    https://git.kernel.org/netdev/net-next/c/4fde8398462f
  - [net-next,v2,7/7] selftests: drv-net: rename queues check_xdp to check_xsk
    https://git.kernel.org/netdev/net-next/c/932a9249f71f

You are awesome, thank you!