Feature #968
openlttng-modules kernel and user callstack context
0%
Description
Implementation from Francis Giraldeau reviewed and cleaned up available here:
https://github.com/compudj/lttng-tools-dev/tree/callstack
https://github.com/compudj/lttng-modules-dev/tree/callstack
Documentation and tests are missing.
Updated by Jérémie Galarneau over 8 years ago
- Status changed from New to Feedback
- Target version changed from 2.8 to 2.9
Updated by Erica Bugden over 1 year ago
- Target version deleted (
2.9)
Kernel and userspace callstack context fields for kernel events are available in LTTng 2.11. Userspace callstack information is currently only available for x86 32/64 systems.
From: What’s new in LTTng 2.11?
Two new context fields are available for Linux kernel channels:
callstack-kernel
callstack-user
Thanks to those, you can record the Linux kernel and user call stacks when a kernel event occurs. For example:
lttng enable-event --kernel --syscall open lttng add-context --kernel --type=callstack-kernel --type=callstack-user
When an open() system call occurs, LTTng attaches the kernel and user call stacks to the recorded event.
- Note: LTTng cannot always sample the user space call stack reliably. For instance, LTTng cannot sample the call stack of user applications and libraries compiled with the -fomit-frame-pointer option. In such a case, the tracing is not affected, but the sampled user space call stack may only contain the user call stack’s topmost address.
Updated by Erica Bugden over 1 year ago
(I'm putting this comment in the same issue for now, but can move to another if that becomes more relevant.)
It would be nice to document the userspace x86 limitation more clearly. I found some mentions of the limitation, but they require digging:
- Commit - Enable userspace callstack contexts only on x86
- LTTng-tools configuration - "Userspace callstack capture is only supported by the Linux kernel on x86"