selftests: drv-net-hw: add test for memory allocation failures with page pool
authorJakub Kicinski <kuba@kernel.org>
Mon, 29 Apr 2024 14:44:26 +0000 (07:44 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 30 Apr 2024 15:15:32 +0000 (08:15 -0700)
commit9da271f825e42156058a2eb09360bc993853bbba
treecc187ebd5dcbf93d1db54c23788b8ef2c62ccaa6
parent0f0cdf312ecc06e63fbba95caf2844e2c405b076
selftests: drv-net-hw: add test for memory allocation failures with page pool

Bugs in memory allocation failure paths are quite common.
Add a test exercising those paths based on qstat and page pool
failure hook.

Running on bnxt:

  # ./drivers/net/hw/pp_alloc_fail.py
  KTAP version 1
  1..1
  # ethtool -G change retval: success
  ok 1 pp_alloc_fail.test_pp_alloc
  # Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0

I initially wrote this test to validate commit be43b7489a3c ("net/mlx5e:
RX, Fix page_pool allocation failure recovery for striding rq") but mlx5
still doesn't have qstat. So I run it on bnxt, and while bnxt survives
I found the problem fixed in commit 730117730709 ("eth: bnxt: fix counting
packets discarded due to OOM and netpoll").

Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20240429144426.743476-7-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/hw/Makefile
tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py [new file with mode: 0755]
tools/testing/selftests/net/lib/py/ksft.py