Re: [PATCHv5 12/13] selftests/bpf: Add tests for uprobe nop10 red zone clobbering
From: bot+bpf-ci@kernel.org
Date: 2026-07-01 11:57:24
Also in:
bpf
quoted hunk ↗ jump to hunk
diff --git a/tools/testing/selftests/bpf/prog_tests/usdt.c b/tools/testing/selftests/bpf/prog_tests/usdt.c index fda3a298ccfc..8004c9568ffa 100644 --- a/tools/testing/selftests/bpf/prog_tests/usdt.c +++ b/tools/testing/selftests/bpf/prog_tests/usdt.c
[ ... ]
quoted hunk ↗ jump to hunk
@@ -340,6 +341,52 @@ static void subtest_optimized_attach(void) cleanup: test_usdt__destroy(skel); } + +/* + * Test that USDT arguments survive nop10 optimization in a function where + * the compiler places operands in the red zone. + * + * Signal handlers are prone to having the compiler place USDT argument + * operands in the red zone (below rsp). + * + * The nop5 optimization used CALL (which pushes a return address to + * [rsp-8]), the value at -8(%rsp) was overwritten. The nop10 optimization + * should escape that by moving stackpointer below the redzone before + * doing the CALL. + */ +static void subtest_optimized_red_zone(void)
This isn't a bug, but the four-line "nop5 optimization used CALL ..." explanation here reads nearly verbatim to the comment added above uprobe_red_zone_test() in prog_tests/uprobe_syscall.c. Since both tests probe the same mechanism, would a single copy (or a shorter note pointing at the other) be preferable, so the two don't drift apart? One small wording note: "moving stackpointer below the redzone" uses "stackpointer" and "redzone", while the rest of the change and the commit message use "stack pointer" and "red zone". --- AI reviewed your patch. Please fix the bug or email reply why it's not a bug. See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md CI run summary: https://github.com/kernel-patches/bpf/actions/runs/28514315910