mbox series

[RFC,lttng-modules,00/10] Callstack context for kernel tracer

Message ID 1490966239-21284-1-git-send-email-mathieu.desnoyers@efficios.com
Headers show
Series Callstack context for kernel tracer | expand

Message

Mathieu Desnoyers March 31, 2017, 1:17 p.m. UTC
This patchset has been sitting in my dev branches for a while. I think
it's time I post it for RFC.

Add callstack contexts for lttng-modules kernel tracer (callstack-user
for user-space callstack, and callstack-kernel for kernel callstack). It
currently rely on frame pointers for user-space callstacks, so it's
normal that we cannot get stack trace for all applications for now. We
may want to investigate using unwind information in those situations.

This is a RFC patchset. There are currently no tests for this feature in
lttng-tools.

Feedback is welcome!

Thanks,

Mathieu


Francis Giraldeau (3):
  Pass arguments for context size computation
  Define max nesting count constant
  Add kernel and user callstack contexts

Mathieu Desnoyers (7):
  Cleanup callstack context
  callstack context: use delimiter when stack is incomplete
  Fix: callstack context: false-sharing, bad memory size allocation
  Fix callstack context: write empty sequence if no stack trace
  Cleanup callstack context
  Fix: callstack context alignment calculation
  callstack context: bump number of entries to 128

 Makefile                      |   3 +-
 lib/ringbuffer/frontend.h     |   3 +
 lib/ringbuffer/frontend_api.h |   2 +-
 lttng-abi.c                   |   3 +
 lttng-abi.h                   |   2 +
 lttng-context-callstack.c     | 361 ++++++++++++++++++++++++++++++++++++++++++
 lttng-events.h                |  12 ++
 lttng-ring-buffer-client.h    |  17 +-
 8 files changed, 396 insertions(+), 7 deletions(-)
 create mode 100644 lttng-context-callstack.c

Comments

Genevieve Bastien March 31, 2017, 2:50 p.m. UTC | #1
Thanks for posting this. I'll definitely try it out (already did actually).


The 'callstack' branches are available on Mathieu's github: 
https://github.com/compudj/lttng-modules-dev and 
https://github.com/compudj/lttng-tools-dev

The contexts to add are:

* callstack-kernel

* callstack-user

lttng add-context -k -t callstack-kernel -t callstack-user


Geneviève




On 2017-03-31 09:17 AM, Mathieu Desnoyers wrote:
> This patchset has been sitting in my dev branches for a while. I think
> it's time I post it for RFC.
>
> Add callstack contexts for lttng-modules kernel tracer (callstack-user
> for user-space callstack, and callstack-kernel for kernel callstack). It
> currently rely on frame pointers for user-space callstacks, so it's
> normal that we cannot get stack trace for all applications for now. We
> may want to investigate using unwind information in those situations.
>
> This is a RFC patchset. There are currently no tests for this feature in
> lttng-tools.
>
> Feedback is welcome!
>
> Thanks,
>
> Mathieu
>
>
> Francis Giraldeau (3):
>    Pass arguments for context size computation
>    Define max nesting count constant
>    Add kernel and user callstack contexts
>
> Mathieu Desnoyers (7):
>    Cleanup callstack context
>    callstack context: use delimiter when stack is incomplete
>    Fix: callstack context: false-sharing, bad memory size allocation
>    Fix callstack context: write empty sequence if no stack trace
>    Cleanup callstack context
>    Fix: callstack context alignment calculation
>    callstack context: bump number of entries to 128
>
>   Makefile                      |   3 +-
>   lib/ringbuffer/frontend.h     |   3 +
>   lib/ringbuffer/frontend_api.h |   2 +-
>   lttng-abi.c                   |   3 +
>   lttng-abi.h                   |   2 +
>   lttng-context-callstack.c     | 361 ++++++++++++++++++++++++++++++++++++++++++
>   lttng-events.h                |  12 ++
>   lttng-ring-buffer-client.h    |  17 +-
>   8 files changed, 396 insertions(+), 7 deletions(-)
>   create mode 100644 lttng-context-callstack.c
>