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