Closed Bug 902624 Opened 11 years ago Closed 9 years ago

Use perf_event user stack/register capture to obtain stack traces in miniperf-record

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jld, Assigned: jld)

References

Details

(Whiteboard: [perf-reviewed])

Attachments

(1 file)

Recent versions of Linux allow perf_event samples to record the user-mode registers and a configurable amount of the user stack above the stack pointer, for stack unwinding using methods that can't/shouldn't be implemented in the kernel.

Currently, the perf tool uses this by having `perf record` write the entire stack dump to the perf data file, and then `perf report` uses DWARF info to unwind.  In principle we could do that, if the sample rate is kept low enough to not exceed our limited I/O bandwidth (or burn too much CPU time in the storage stack), and we accept the other limitations of dealing with the perf tool as it currently exists (Linux build hosts only, library versioning issues, difficulty of cross-building, etc.).

But we could also have miniperf-record unwind with the exception handling tables present on the device, remove the stack/regs, and replace them with a callchain.  (It's already snooping on the event stream to insert synthetic records for mappings and command names present before the start of the trace, as regular `perf record` does.)  And we should do that, because it will give us full-system profiles, with stacks, without compiler changes.
Keywords: perf
Status: NEW → ASSIGNED
Depends on: 904907, 904908
Summary: Use perf_event user stack/register capture to obtain stack traces → Use perf_event user stack/register capture to obtain stack traces in miniperf-record
Whiteboard: [c=profiling p=5] → [c=profiling s=2013.10.18 p=5]
Whiteboard: [c=profiling s=2013.10.18 p=5] → [c=profiling s= p=5]
Keywords: perf
Whiteboard: [c=profiling s= p=5]
Whiteboard: [perf-reviewed]
miniperf-record and related performance tooling attempts are dead.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
…but here's a diff of what I had in gonk-misc the last time I was working on this, at the work week in Oslo in 2013 — if I recall correctly it was sort of working but there was some flakiness, maybe even crashes.  Might be useful if anyone wanted to reopen this or do something similar.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: