* [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl
[not found] <20251003233025.1157158-1-kuba@kernel.org>
@ 2025-10-03 23:30 ` Jakub Kicinski
2025-10-04 16:46 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats Jakub Kicinski
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Jakub Kicinski @ 2025-10-03 23:30 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, andrew+netdev, horms, bpf,
Jakub Kicinski, shuah, sdf, linux-kselftest
Test uses "netnl" for the ethtool family which is quite confusing
(one would expect netdev family would use this name).
No functional changes.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: sdf@fomichev.me
CC: linux-kselftest@vger.kernel.org
CC: bpf@vger.kernel.org
---
tools/testing/selftests/drivers/net/xdp.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/xdp.py b/tools/testing/selftests/drivers/net/xdp.py
index 08fea4230759..a7a4d97aa228 100755
--- a/tools/testing/selftests/drivers/net/xdp.py
+++ b/tools/testing/selftests/drivers/net/xdp.py
@@ -541,11 +541,11 @@ from lib.py import ip, bpftool, defer
The HDS threshold value. If the threshold is not supported or an error occurs,
a default value of 1500 is returned.
"""
- netnl = cfg.netnl
+ ethnl = cfg.ethnl
hds_thresh = 1500
try:
- rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}})
+ rings = ethnl.rings_get({'header': {'dev-index': cfg.ifindex}})
if 'hds-thresh' not in rings:
ksft_pr(f'hds-thresh not supported. Using default: {hds_thresh}')
return hds_thresh
@@ -562,7 +562,7 @@ from lib.py import ip, bpftool, defer
Args:
cfg: Configuration object containing network settings.
- netnl: Network namespace or link object (not used in this function).
+ ethnl: Network namespace or link object (not used in this function).
This function sets up the packet size and offset lists, then performs
the head adjustment test by sending and receiving UDP packets.
@@ -681,7 +681,7 @@ from lib.py import ip, bpftool, defer
function to execute the tests.
"""
with NetDrvEpEnv(__file__) as cfg:
- cfg.netnl = EthtoolFamily()
+ cfg.ethnl = EthtoolFamily()
ksft_run(
[
test_xdp_native_pass_sb,
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats
[not found] <20251003233025.1157158-1-kuba@kernel.org>
2025-10-03 23:30 ` [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl Jakub Kicinski
@ 2025-10-03 23:30 ` Jakub Kicinski
2025-10-04 16:47 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail Jakub Kicinski
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Jakub Kicinski @ 2025-10-03 23:30 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, andrew+netdev, horms, bpf,
Jakub Kicinski, shuah, sdf, linux-kselftest
Send a non-trivial number of packets and make sure that they
are counted correctly in qstats. Per qstats specification
XDP is the first layer of the stack so we should see Rx and Tx
counters go up for packets which went thru XDP.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: sdf@fomichev.me
CC: linux-kselftest@vger.kernel.org
CC: bpf@vger.kernel.org
---
tools/testing/selftests/drivers/net/xdp.py | 91 +++++++++++++++++++++-
1 file changed, 89 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/xdp.py b/tools/testing/selftests/drivers/net/xdp.py
index a7a4d97aa228..a148004e1c36 100755
--- a/tools/testing/selftests/drivers/net/xdp.py
+++ b/tools/testing/selftests/drivers/net/xdp.py
@@ -11,8 +11,9 @@ import string
from dataclasses import dataclass
from enum import Enum
-from lib.py import ksft_run, ksft_exit, ksft_eq, ksft_ne, ksft_pr
-from lib.py import KsftFailEx, NetDrvEpEnv, EthtoolFamily, NlError
+from lib.py import ksft_run, ksft_exit, ksft_eq, ksft_ge, ksft_ne, ksft_pr
+from lib.py import KsftFailEx, NetDrvEpEnv
+from lib.py import EthtoolFamily, NetdevFamily, NlError
from lib.py import bkg, cmd, rand_port, wait_port_listen
from lib.py import ip, bpftool, defer
@@ -671,6 +672,88 @@ from lib.py import ip, bpftool, defer
_validate_res(res, offset_lst, pkt_sz_lst)
+def _test_xdp_native_ifc_stats(cfg, act):
+ cfg.require_cmd("socat")
+
+ bpf_info = BPFProgInfo("xdp_prog", "xdp_native.bpf.o", "xdp", 1500)
+ prog_info = _load_xdp_prog(cfg, bpf_info)
+ port = rand_port()
+
+ _set_xdp_map("map_xdp_setup", TestConfig.MODE.value, act.value)
+ _set_xdp_map("map_xdp_setup", TestConfig.PORT.value, port)
+
+ # Discard the input, but we need a listener to avoid ICMP errors
+ rx_udp = f"socat -{cfg.addr_ipver} -T 2 -u UDP-RECV:{port},reuseport " + \
+ "/dev/null"
+ # Listener runs on "remote" in case of XDP_TX
+ rx_host = cfg.remote if act == XDPAction.TX else None
+ # We want to spew 2000 packets quickly, bash seems to do a good enough job
+ tx_udp = f"exec 5<>/dev/udp/{cfg.addr}/{port}; " \
+ "for i in `seq 2000`; do echo a >&5; done; exec 5>&-"
+
+ cfg.wait_hw_stats_settle()
+ # Qstats have more clearly defined semantics than rtnetlink.
+ # XDP is the "first layer of the stack" so XDP packets should be counted
+ # as received and sent as if the decision was made in the routing layer.
+ before = cfg.netnl.qstats_get({"ifindex": cfg.ifindex}, dump=True)[0]
+
+ with bkg(rx_udp, host=rx_host, exit_wait=True):
+ wait_port_listen(port, proto="udp", host=rx_host)
+ cmd(tx_udp, host=cfg.remote, shell=True)
+
+ cfg.wait_hw_stats_settle()
+ after = cfg.netnl.qstats_get({"ifindex": cfg.ifindex}, dump=True)[0]
+
+ ksft_ge(after['rx-packets'] - before['rx-packets'], 2000)
+ if act == XDPAction.TX:
+ ksft_ge(after['tx-packets'] - before['tx-packets'], 2000)
+
+ expected_pkts = 2000
+ stats = _get_stats(prog_info["maps"]["map_xdp_stats"])
+ ksft_eq(stats[XDPStats.RX.value], expected_pkts, "XDP RX stats mismatch")
+ if act == XDPAction.TX:
+ ksft_eq(stats[XDPStats.TX.value], expected_pkts, "XDP TX stats mismatch")
+
+ # Flip the ring count back and forth to make sure the stats from XDP rings
+ # don't get lost.
+ chans = cfg.ethnl.channels_get({'header': {'dev-index': cfg.ifindex}})
+ if chans.get('combined-count', 0) > 1:
+ cfg.ethnl.channels_set({'header': {'dev-index': cfg.ifindex},
+ 'combined-count': 1})
+ cfg.ethnl.channels_set({'header': {'dev-index': cfg.ifindex},
+ 'combined-count': chans['combined-count']})
+ before = after
+ after = cfg.netnl.qstats_get({"ifindex": cfg.ifindex}, dump=True)[0]
+
+ ksft_ge(after['rx-packets'], before['rx-packets'])
+ if act == XDPAction.TX:
+ ksft_ge(after['tx-packets'], before['tx-packets'])
+
+
+def test_xdp_native_qstats_pass(cfg):
+ """
+ Send 2000 messages, expect XDP_PASS, make sure the packets were counted
+ to interface level qstats (Rx).
+ """
+ _test_xdp_native_ifc_stats(cfg, XDPAction.PASS)
+
+
+def test_xdp_native_qstats_drop(cfg):
+ """
+ Send 2000 messages, expect XDP_DROP, make sure the packets were counted
+ to interface level qstats (Rx).
+ """
+ _test_xdp_native_ifc_stats(cfg, XDPAction.DROP)
+
+
+def test_xdp_native_qstats_tx(cfg):
+ """
+ Send 2000 messages, expect XDP_TX, make sure the packets were counted
+ to interface level qstats (Rx and Tx)
+ """
+ _test_xdp_native_ifc_stats(cfg, XDPAction.TX)
+
+
def main():
"""
Main function to execute the XDP tests.
@@ -682,6 +765,7 @@ from lib.py import ip, bpftool, defer
"""
with NetDrvEpEnv(__file__) as cfg:
cfg.ethnl = EthtoolFamily()
+ cfg.netnl = NetdevFamily()
ksft_run(
[
test_xdp_native_pass_sb,
@@ -694,6 +778,9 @@ from lib.py import ip, bpftool, defer
test_xdp_native_adjst_tail_shrnk_data,
test_xdp_native_adjst_head_grow_data,
test_xdp_native_adjst_head_shrnk_data,
+ test_xdp_native_qstats_pass,
+ test_xdp_native_qstats_drop,
+ test_xdp_native_qstats_tx,
],
args=(cfg,))
ksft_exit()
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail
[not found] <20251003233025.1157158-1-kuba@kernel.org>
2025-10-03 23:30 ` [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl Jakub Kicinski
2025-10-03 23:30 ` [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats Jakub Kicinski
@ 2025-10-03 23:30 ` Jakub Kicinski
2025-10-04 16:48 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations Jakub Kicinski
2025-10-03 23:30 ` [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config Jakub Kicinski
4 siblings, 1 reply; 10+ messages in thread
From: Jakub Kicinski @ 2025-10-03 23:30 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, andrew+netdev, horms, bpf,
Jakub Kicinski, shuah, johndale, linux-kselftest
Fix linter warnings, it's a bit hard to check for new ones otherwise.
W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
C0114: Missing module docstring (missing-module-docstring)
W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
C0116: Missing function or method docstring (missing-function-docstring)
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: johndale@cisco.com
CC: linux-kselftest@vger.kernel.org
---
.../selftests/drivers/net/hw/pp_alloc_fail.py | 20 +++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py b/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
index ad192fef3117..fc66b7a7b149 100755
--- a/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
+++ b/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
@@ -1,6 +1,10 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0
+"""
+Test driver resilience vs page pool allocation failures.
+"""
+
import errno
import time
import os
@@ -13,7 +17,8 @@ from lib.py import cmd, tool, GenerateTraffic
def _write_fail_config(config):
for key, value in config.items():
- with open("/sys/kernel/debug/fail_function/" + key, "w") as fp:
+ path = "/sys/kernel/debug/fail_function/"
+ with open(path + key, "w", encoding='ascii') as fp:
fp.write(str(value) + "\n")
@@ -22,8 +27,7 @@ from lib.py import cmd, tool, GenerateTraffic
raise KsftSkipEx("Kernel built without function error injection (or DebugFS)")
if not os.path.exists("/sys/kernel/debug/fail_function/page_pool_alloc_netmems"):
- with open("/sys/kernel/debug/fail_function/inject", "w") as fp:
- fp.write("page_pool_alloc_netmems\n")
+ _write_fail_config({"inject": "page_pool_alloc_netmems"})
_write_fail_config({
"verbose": 0,
@@ -38,8 +42,7 @@ from lib.py import cmd, tool, GenerateTraffic
return
if os.path.exists("/sys/kernel/debug/fail_function/page_pool_alloc_netmems"):
- with open("/sys/kernel/debug/fail_function/inject", "w") as fp:
- fp.write("\n")
+ _write_fail_config({"inject": ""})
_write_fail_config({
"probability": 0,
@@ -48,6 +51,10 @@ from lib.py import cmd, tool, GenerateTraffic
def test_pp_alloc(cfg, netdevnl):
+ """
+ Configure page pool allocation fail injection while traffic is running.
+ """
+
def get_stats():
return netdevnl.qstats_get({"ifindex": cfg.ifindex}, dump=True)[0]
@@ -105,7 +112,7 @@ from lib.py import cmd, tool, GenerateTraffic
else:
ksft_pr("ethtool -G change retval: did not succeed", new_g)
else:
- ksft_pr("ethtool -G change retval: did not try")
+ ksft_pr("ethtool -G change retval: did not try")
time.sleep(0.1)
check_traffic_flowing()
@@ -119,6 +126,7 @@ from lib.py import cmd, tool, GenerateTraffic
def main() -> None:
+ """ Ksft boiler plate main """
netdevnl = NetdevFamily()
with NetDrvEpEnv(__file__, nsim_test=False) as cfg:
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations
[not found] <20251003233025.1157158-1-kuba@kernel.org>
` (2 preceding siblings ...)
2025-10-03 23:30 ` [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail Jakub Kicinski
@ 2025-10-03 23:30 ` Jakub Kicinski
2025-10-04 16:44 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config Jakub Kicinski
4 siblings, 1 reply; 10+ messages in thread
From: Jakub Kicinski @ 2025-10-03 23:30 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, andrew+netdev, horms, bpf,
Jakub Kicinski, shuah, johndale, linux-kselftest
Lower the expected level of traffic in the pp_alloc_fail test
and calculate failure counter thresholds based on the traffic
rather than using a fixed constant.
We only have "QEMU HW" in NIPA right now, and the test (due to
debug dependencies) only works on debug kernels in the first place.
We need some place for it to pass otherwise it seems to be bit
rotting. So lower the traffic threshold so that it passes on QEMU
and with a debug kernel...
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: johndale@cisco.com
CC: linux-kselftest@vger.kernel.org
---
.../selftests/drivers/net/hw/pp_alloc_fail.py | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py b/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
index fc66b7a7b149..a4521a912d61 100755
--- a/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
+++ b/tools/testing/selftests/drivers/net/hw/pp_alloc_fail.py
@@ -7,6 +7,7 @@ Test driver resilience vs page pool allocation failures.
import errno
import time
+import math
import os
from lib.py import ksft_run, ksft_exit, ksft_pr
from lib.py import KsftSkipEx, KsftFailEx
@@ -62,7 +63,7 @@ from lib.py import cmd, tool, GenerateTraffic
stat1 = get_stats()
time.sleep(1)
stat2 = get_stats()
- if stat2['rx-packets'] - stat1['rx-packets'] < 15000:
+ if stat2['rx-packets'] - stat1['rx-packets'] < 4000:
raise KsftFailEx("Traffic seems low:", stat2['rx-packets'] - stat1['rx-packets'])
@@ -91,9 +92,14 @@ from lib.py import cmd, tool, GenerateTraffic
if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < 1:
raise KsftSkipEx("Allocation failures not increasing")
- if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < 100:
- raise KsftSkipEx("Allocation increasing too slowly", s2['rx-alloc-fail'] - s1['rx-alloc-fail'],
- "packets:", s2['rx-packets'] - s1['rx-packets'])
+ pkts = s2['rx-packets'] - s1['rx-packets']
+ # Expecting one failure per 512 buffers, 3.1x safety margin
+ want_fails = math.floor(pkts / 512 / 3.1)
+ seen_fails = s2['rx-alloc-fail'] - s1['rx-alloc-fail']
+ if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < want_fails:
+ raise KsftSkipEx("Allocation increasing too slowly", seen_fails,
+ "packets:", pkts)
+ ksft_pr(f"Seen: pkts:{pkts} fails:{seen_fails} (pass thrs:{want_fails})")
# Basic failures are fine, try to wobble some settings to catch extra failures
check_traffic_flowing()
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config
[not found] <20251003233025.1157158-1-kuba@kernel.org>
` (3 preceding siblings ...)
2025-10-03 23:30 ` [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations Jakub Kicinski
@ 2025-10-03 23:30 ` Jakub Kicinski
2025-10-04 16:48 ` Simon Horman
4 siblings, 1 reply; 10+ messages in thread
From: Jakub Kicinski @ 2025-10-03 23:30 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, andrew+netdev, horms, bpf,
Jakub Kicinski, shuah, joe, willemb, sdf, almasrymina,
linux-kselftest
Add kernel config for error injection as needed by pp_alloc_fail.py
Fixes: 9da271f825e4 ("selftests: drv-net-hw: add test for memory allocation failures with page pool")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: shuah@kernel.org
CC: joe@dama.to
CC: willemb@google.com
CC: sdf@fomichev.me
CC: almasrymina@google.com
CC: linux-kselftest@vger.kernel.org
---
tools/testing/selftests/drivers/net/hw/config | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/testing/selftests/drivers/net/hw/config b/tools/testing/selftests/drivers/net/hw/config
index e8a06aa1471c..2307aa001be1 100644
--- a/tools/testing/selftests/drivers/net/hw/config
+++ b/tools/testing/selftests/drivers/net/hw/config
@@ -1,3 +1,7 @@
+CONFIG_FAIL_FUNCTION=y
+CONFIG_FAULT_INJECTION=y
+CONFIG_FAULT_INJECTION_DEBUG_FS=y
+CONFIG_FUNCTION_ERROR_INJECTION=y
CONFIG_IO_URING=y
CONFIG_IPV6=y
CONFIG_IPV6_GRE=y
--
2.51.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations
2025-10-03 23:30 ` [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations Jakub Kicinski
@ 2025-10-04 16:44 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-10-04 16:44 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, andrew+netdev, bpf, shuah,
johndale, linux-kselftest
On Fri, Oct 03, 2025 at 04:30:24PM -0700, Jakub Kicinski wrote:
...
> @@ -91,9 +92,14 @@ from lib.py import cmd, tool, GenerateTraffic
>
> if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < 1:
> raise KsftSkipEx("Allocation failures not increasing")
> - if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < 100:
> - raise KsftSkipEx("Allocation increasing too slowly", s2['rx-alloc-fail'] - s1['rx-alloc-fail'],
> - "packets:", s2['rx-packets'] - s1['rx-packets'])
> + pkts = s2['rx-packets'] - s1['rx-packets']
> + # Expecting one failure per 512 buffers, 3.1x safety margin
> + want_fails = math.floor(pkts / 512 / 3.1)
> + seen_fails = s2['rx-alloc-fail'] - s1['rx-alloc-fail']
> + if s2['rx-alloc-fail'] - s1['rx-alloc-fail'] < want_fails:
I guess this could be as follows.
(Completely untested!)
if seen_fails < want_fails:
> + raise KsftSkipEx("Allocation increasing too slowly", seen_fails,
> + "packets:", pkts)
> + ksft_pr(f"Seen: pkts:{pkts} fails:{seen_fails} (pass thrs:{want_fails})")
>
> # Basic failures are fine, try to wobble some settings to catch extra failures
> check_traffic_flowing()
The nit above withstanding, this looks good to me.
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl
2025-10-03 23:30 ` [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl Jakub Kicinski
@ 2025-10-04 16:46 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-10-04 16:46 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, andrew+netdev, bpf, shuah, sdf,
linux-kselftest
On Fri, Oct 03, 2025 at 04:30:20PM -0700, Jakub Kicinski wrote:
> Test uses "netnl" for the ethtool family which is quite confusing
> (one would expect netdev family would use this name).
>
> No functional changes.
>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats
2025-10-03 23:30 ` [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats Jakub Kicinski
@ 2025-10-04 16:47 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-10-04 16:47 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, andrew+netdev, bpf, shuah, sdf,
linux-kselftest
On Fri, Oct 03, 2025 at 04:30:21PM -0700, Jakub Kicinski wrote:
> Send a non-trivial number of packets and make sure that they
> are counted correctly in qstats. Per qstats specification
> XDP is the first layer of the stack so we should see Rx and Tx
> counters go up for packets which went thru XDP.
>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail
2025-10-03 23:30 ` [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail Jakub Kicinski
@ 2025-10-04 16:48 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-10-04 16:48 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, andrew+netdev, bpf, shuah,
johndale, linux-kselftest
On Fri, Oct 03, 2025 at 04:30:23PM -0700, Jakub Kicinski wrote:
> Fix linter warnings, it's a bit hard to check for new ones otherwise.
>
> W0311: Bad indentation. Found 16 spaces, expected 12 (bad-indentation)
> C0114: Missing module docstring (missing-module-docstring)
> W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
> C0116: Missing function or method docstring (missing-function-docstring)
>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config
2025-10-03 23:30 ` [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config Jakub Kicinski
@ 2025-10-04 16:48 ` Simon Horman
0 siblings, 0 replies; 10+ messages in thread
From: Simon Horman @ 2025-10-04 16:48 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, andrew+netdev, bpf, shuah, joe,
willemb, sdf, almasrymina, linux-kselftest
On Fri, Oct 03, 2025 at 04:30:25PM -0700, Jakub Kicinski wrote:
> Add kernel config for error injection as needed by pp_alloc_fail.py
>
> Fixes: 9da271f825e4 ("selftests: drv-net-hw: add test for memory allocation failures with page pool")
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-10-04 16:48 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20251003233025.1157158-1-kuba@kernel.org>
2025-10-03 23:30 ` [PATCH net 4/9] selftests: drv-net: xdp: rename netnl to ethnl Jakub Kicinski
2025-10-04 16:46 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 5/9] selftests: drv-net: xdp: add test for interface level qstats Jakub Kicinski
2025-10-04 16:47 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 7/9] selftests: drv-net: fix linter warnings in pp_alloc_fail Jakub Kicinski
2025-10-04 16:48 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 8/9] selftests: drv-net: pp_alloc_fail: lower traffic expectations Jakub Kicinski
2025-10-04 16:44 ` Simon Horman
2025-10-03 23:30 ` [PATCH net 9/9] selftests: drv-net: pp_alloc_fail: add necessary optoins to config Jakub Kicinski
2025-10-04 16:48 ` Simon Horman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox