diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-29 10:26:01 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-29 10:26:01 +0300 |
| commit | 55f52dc3d270bd0edbaa1f338c8798598721e2f1 (patch) | |
| tree | ddc0a76fceb30fffeb0231fbe2d2dd09a2836767 /internal/tracepoints | |
| parent | 59451a70fc82b3b6b5522986b08b4c16cda24301 (diff) | |
codegen: suppress unreachable sys_exit handlers for noreturn syscalls
exit and exit_group never return to userspace, so their sys_exit
tracepoints can never fire. The generator previously emitted matching
EXIT_RET_EVENT handlers anyway, producing dead code in the generated BPF
program. classifySyscall now skips exit-handler emission for noreturn
syscalls via isNoreturnSyscall, and the regenerated artifacts drop the
sys_exit_exit / sys_exit_exit_group handlers (enter handlers are kept).
Tests updated to match the new reality:
- TestGenerateExitNoreturnHandlers asserts no exit handler is emitted.
- TestClassifySyscallPairEmitsAllFamilies exempts noreturn syscalls from
the exit-handler-required assertion while staying strict for all others.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'internal/tracepoints')
| -rw-r--r-- | internal/tracepoints/generated_tracepoints.go | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/internal/tracepoints/generated_tracepoints.go b/internal/tracepoints/generated_tracepoints.go index b1d3ce9..c9495eb 100644 --- a/internal/tracepoints/generated_tracepoints.go +++ b/internal/tracepoints/generated_tracepoints.go @@ -697,9 +697,7 @@ var List = []string{ "sys_enter_capset", "sys_exit_capset", "sys_enter_exit", - "sys_exit_exit", "sys_enter_exit_group", - "sys_exit_exit_group", "sys_enter_waitid", "sys_exit_waitid", "sys_enter_wait4", |
