summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-28close_range: honor last bound and CLOSE_RANGE_CLOEXEC flagPaul Buetow
close_range was captured as a single-fd fd_event carrying only first, so the runtime evicted every tracked fd >= first, ignoring the last upper bound and the flags. Bounded calls wrongly dropped still-open higher fds, and CLOSE_RANGE_CLOEXEC (which keeps fds open) was treated as a full close. Reclassify close_range to the two_fd_event kind, mapping fd_a/fd_b/extra to first/last/flags. The runtime now closes only the inclusive [first, last] range (a negative last from ~0U means unbounded) and skips eviction when CLOSE_RANGE_CLOEXEC is set or the syscall fails. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27Stabilize integration test startupPaul Buetow
2026-05-27Clarify syscall aggregate delta sentinel testPaul Buetow
2026-05-27test(flamegraph): cover height edge branches (0p)Paul Buetow
2026-05-27flamegraph: reuse clearSnapshotState maps with clear() (ep)Paul Buetow
2026-05-27cp: remove dead flamegraph helpers and dead style param plumbingPaul Buetow
2026-05-27ap: refactor livetrie mutex unlocks to defer patternsPaul Buetow
2026-05-27flamegraph: table-drive metric cycles and semantic colors (9p)Paul Buetow
2026-05-27dp: move flamegraph key helpers to keys.goPaul Buetow
2026-05-27flamegraph: include height/count in view cache key (2p)Paul Buetow
2026-05-27flamegraph: show selected height metric in status line (zo)Paul Buetow
2026-05-27flamegraph: extract heightMetricActive helper (yo)Paul Buetow
2026-05-27flamegraph: dedupe layout math for hit mapping (8p)Paul Buetow
2026-05-27flamegraph: use render contexts and remove wrapper (7p)Paul Buetow
2026-05-27flamegraph: reduce AddRecord lock contention (6p)Paul Buetow
2026-05-27flamegraph: guard SnapshotJSON cache writes (5p)Paul Buetow
2026-05-27fix(flamegraph): lock metric field reads in AddRecord (1p)Paul Buetow
2026-05-26test: add xo coverage for dual metrics and variable-height flamegraphPaul Buetow
2026-05-26wo: default runtime LiveTrie height field to disabledPaul Buetow
2026-05-26vo: fix flamegraph click mapping for expanded leaf rowsPaul Buetow
2026-05-26flamegraph: variable leaf bar heights for height metric (uo)Paul Buetow
2026-05-26flamegraph: plumb HeightTotal through tuiFrame layout (task to)Paul Buetow
2026-05-26flamegraph: add height metric controls/keybinding (so)Paul Buetow
2026-05-26runtime: restore LiveTrieSource compatibility for TUI (ro)Paul Buetow
2026-05-26flamegraph: add height field methods to Configurator (ro)Paul Buetow
2026-05-26flamegraph: add LiveTrie height metric ingestion (task qo)Paul Buetow
2026-05-26flamegraph: add dual trie value/height totals (task po)Paul Buetow
2026-05-23Merge branch 'main' into developPaul Buetow
2026-05-237c add end-to-end tests for aggregate-only stats ingestionPaul Buetow
Wire a real statsengine.Engine as the aggregate sink in five new tests to verify the full drain path (source -> drainer -> filter -> engine -> snapshot), closing the coverage gap where BPF aggregate decode, filter gating, or stats ingestion could break while the existing sampling test still passed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-236c add schema drift test for BPF aggregate map structPaul Buetow
The C struct syscall_aggregate (maps.h) is manually mirrored as rawSyscallAggregate in Go. Add a test that parses the C definition and asserts field names, types, sizes, and offsets match the Go struct so any future schema change is caught at test time. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-239c move Non-IO grouping policy from core stats/types into dashboardPaul Buetow
Snapshot.NonIOFamilies, Snapshot.NonIOFamiliesCount, and types.IsNonIOSyscallFamily encoded a TUI tab concept in core packages. Move this filtering into internal/tui/dashboard/nonio.go as unexported helpers so the dashboard owns its own grouping policy and Snapshot.Families remains the neutral core API. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-232c fix epoll_create and pidfd_open flags in BPF codegenPaul Buetow
epoll_create(size) was recording size (args[0]) as flags — hardcode to 0 since the syscall has no flags argument. pidfd_open(pid, flags) was recording pid (args[0]) as flags — use args[1] instead. Add test fixtures and codegen tests that verify the correct argument indexes and reject the old wrong ones. Regenerate generated_tracepoints.c. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-231c guard ioworkload select fd_set against high fd valuesPaul Buetow
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-230c promote aggregate-only sampling defaults in raw output modesPaul Buetow
Default aggregate-only sampling (rate 0) for futex* and clock_gettime causes BPF to suppress ring-buffer events. In -plain, -flamegraph, and headless -parquet modes there is no aggregate sink, so these probes would emit no rows even when explicitly selected. Promote those defaults to rate 1 during flag resolution; user-explicit overrides are preserved. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23zb restore legacy -tps regex selection for non-FS tracepointsPaul Buetow
When -tps provides an explicit regex but no -trace-* dimension selectors are given, skip the implicit FS-only syscall allowlist so that non-FS tracepoints (e.g. nanosleep) matched by the regex are still attached. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-235c remove tracepoint ID adjacency dependency from aggregate pairingPaul Buetow
Generated exit handlers now pass the explicit enter trace ID (SYS_ENTER_X) to ior_on_syscall_exit instead of relying on the implicit enter_id == exit_id + 1 arithmetic invariant. filter.c compares directly against the passed enter ID. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23ac table-drive BPF extra-code generation away from switchesPaul Buetow
Replace the large switch in generateExtra with an extraEmitters registry (map[TracepointKind]extraEmitter) and convert six inner switch-on-name helpers to table-driven lookups: - generateExtraMem -> memFieldOverrides table - generateExtraEventfd -> eventfdFlagsExpr table - generateExtraTwoFd -> twoFdOverrides + twoFdDefault - generateExtraPoll -> pollOverrides + pollTimeoutBody(style) - generateExtraSleep -> sleepTimespecPtr table - generateExtraKeyctl -> keyctlOverrides table Adding a new syscall kind or variant now requires only a table entry instead of editing switch arms with raw C string literals. Generated BPF C output is behaviorally equivalent; all existing tests pass unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-238c extract aggregate draining and filter gating from eventLoopPaul Buetow
Move aggregate drain scheduling, filter compatibility policy, trace-ID allowlisting, and warning construction into a dedicated aggregateDrainer type. eventLoop now only creates and ticks it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-223c table-drive name-only syscall classificationPaul Buetow
2026-05-224c extract event kind runtime registryPaul Buetow
2026-05-22xb make syscall aggregates per-cpu deltasPaul Buetow
2026-05-22yb reject aggregate rows for pid tid filtersPaul Buetow
2026-05-21wb add docs drift tests for syscall coveragePaul Buetow
2026-05-21vb add data-driven name-only kind mapping tablePaul Buetow
2026-05-21q7 publish shipped syscall tracing coverage docsPaul Buetow
2026-05-21o7 classify landlock add-rule and restrict-self as fdPaul Buetow
2026-05-21m7 classify time and posix timer syscallsPaul Buetow
2026-05-21k7 classify process control and prctl syscallsPaul Buetow
2026-05-21j7 add futex kind and aggregate-only defaultsPaul Buetow
2026-05-21l7 classify numa and process memory syscallsPaul Buetow