From 49b16417d9f52c8ddb48b158b73ccda31fd26982 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 29 May 2026 10:13:18 +0300 Subject: family: classify futex syscalls as IPC instead of Misc Audit of futex_wake found that the futex family syscalls (futex, futex_wait, futex_wake, futex_requeue, futex_waitv) were absent from the syscallFamilies map and fell through to FamilyMisc. Per futex(2) ("fast user-space locking"), these are shared-memory synchronization/IPC primitives, conceptually identical to the System V semaphores (semop/semget) already tagged FamilyIPC. Group them under IPC so per-family aggregation/reporting bins them with the other synchronization primitives. Argument and return-value handling were already correct: futex_wake's first arg (uaddr) is a userspace pointer, captured via KindFutex (null_event), and the exit ret_event records the woken-waiter count (>=0) or -1 on error. Add lock-in unit tests in family_test.go and regenerate the C/Go artifacts (generated_tracepoints.go, generated_types.go). Co-Authored-By: Claude Opus 4.8 --- internal/tracepoints/generated_tracepoints.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'internal/tracepoints') diff --git a/internal/tracepoints/generated_tracepoints.go b/internal/tracepoints/generated_tracepoints.go index 5ff2f5c..b1d3ce9 100644 --- a/internal/tracepoints/generated_tracepoints.go +++ b/internal/tracepoints/generated_tracepoints.go @@ -815,11 +815,11 @@ var syscallFamilies = map[string]string{ "fstatfs": "FS", "fsync": "FS", "ftruncate": "FS", - "futex": "Misc", - "futex_requeue": "Misc", - "futex_wait": "Misc", - "futex_waitv": "Misc", - "futex_wake": "Misc", + "futex": "IPC", + "futex_requeue": "IPC", + "futex_wait": "IPC", + "futex_waitv": "IPC", + "futex_wake": "IPC", "futimesat": "FS", "get_mempolicy": "Security", "get_robust_list": "Misc", -- cgit v1.2.3