Issue #75: attributable, actionable DTrace profiles #90
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-75-attributable-traces"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue #75: attributable, actionable DTrace profiles
Closes #75.
What
End-to-end DTrace measurement pipeline: capture -> validated bundle -> actionable reports, plus the overhead bench harness and attribution workload.
Capture and bundle (steps 1-2)
tools/dtrace/capture.sh: live FreeBSD capture producing a self-contained bundle (retained binary, argv, cohort identity, six raw families, checksums, atomic publish with INCOMPLETE fail-closed staging).support/dtrace/process-identity.c: native process incarnation identity (boot_id/pid/start_ns) for attributable cohorts; FreeBSD fix (sys/user.hinclude).tools/dtrace/cohort.ss): helper-backed identity, sealed cohorts, readiness gates; fixed a Gerbil-onlyuntaintin the identity parse found by live capture.allocation-sample, notallocation__sample)provider<pid>name, anddtrace -lexits 0 with zero matchesvoid*arithmetic,copyintakesuintptr_t, cpu collector records frameunknown(profile probes forbidfuncas a scalar;usym/ustackcannot be stringified)Reports (step 3)
tools/dtrace/report.ss: report.json/report.md/cpu.folded/syscalls.csv/io.csv/allocations.csv/gc.csv/spans.csv from any bundle; complete = verdict pass && malformed=0; fail-closed integration into capture finalize (stub -> validate run1 -> real reports -> regen sums -> final validate -> publish).Benchmarks and attribution (2g)
benchmarks/dtrace/bench-overhead.sswith control lines, attach barrier, startup/elapsed split;bench-settings.envsingle source of truth;run-overhead.shA/B driver (4 modes, alternating order, absolute binary paths);compare-overhead.shgated comparison engine; deterministicattribution.ssworkload (index-build/validate/io-overlap phases with user-event markers and io probes).syscalls-freebsd.d: flock/ioctl/dup2 probes.Validation fixes found by live verification
get-bytevector-allreturns eof for empty files) -> universal checksum mismatches; syscall fd/request/ret now accept signed integers (openat AT_FDCWD dirfd).Verification
make test-dtrace-unitgreen on macOS (78 PASS) and FreeBSD biggus (gmake DTRACE=on DTRACE_REQUIRED=1 test-dtrace-unit, 196 PASS lines).capture.sh --preset fullpublished a validated bundle (rc=0),validate.ssrc=0,report.ssrc=0report: complete (pass); gc.csv pause_count=60046, aggregated syscalls, cpu samples, control events present.make binaryclean;jerboa-bin --version0.13.0; VERSION bumped per policy.data/howtos.sexp.83d9837d4db7f95c20f6