Repository navigation
feat(linux): support frame-pointer-only recording - #12
Open
not-matthias wants to merge 3 commits into
Open
not-matthias wants to merge 3 commits into
not-matthias wants to merge 3 commits into
Conversation
Add --unwinding-mode fp to record kernel callchains without copying user stacks or registers. Keep the existing DWARF recording behavior as the default, including on Android. Apply kernel callchain exclusion after initializing perf flags. Cover CLI selection and callchain-only stack conversion, and document frame-pointer build requirements.
Wait for the sampler to finish task initialization before releasing the preload handshake or resuming an attached task. Otherwise short-lived root processes can exit while their initial threads and libraries are still being read, causing the sampler to panic. Reuse one rendezvous channel for task initialization. Release the accepter after each initialization attempt, including failures, so processes do not remain suspended when sampling stops.
not-matthias
marked this pull request as ready for review
October 13, 2026 15:45
The user stack copied per sample for DWARF unwinding was fixed at 32000 bytes. Expose it as --unwinding-stack-size (default unchanged) so callers can trade profile size for deeper stacks. Values are validated against the kernel's sample_stack_user constraints (8-byte aligned, below 65536).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR: Add
samply record --unwinding-mode fpto use kernel frame-pointer callchains without copying user stacks or registers (Linux only).dwarfas the default with the existing kernel-FP fallback; preserve FP mode for launch, PID attach, and software-event fallback.cargo test -p samply --locked: 28 passed, one existing ignored test.FP stacks require preserved frame pointers throughout the call chain and remain subject to kernel/architecture support and callchain depth limits.
Refs COD-3861.