
= Kernel additional analyses =

This plugin contains additional analyses for '''kernel traces'''.

== Table of Contents ==

__TOC__

== LTTng Context Callstack analysis ==

The '''LTTng Context Callstack''' analysis adds views for LTTng kernel traces with events that have the callstack context.

To obtain traces that can use this analysis, you need to add either or both of the following contexts in your LTTng kernel trace:

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

This will add a context for events that is an array of the callstack at the moment of the event, the kernel callstack being the functions in the kernel and the callstack-user is the callstack of the userspace application that was running at the moment of the event.

Once the trace is opened, in order to make sense of the binary symbols that are the callstack, you'll need the configure the symbols for the trace. Right-click on the trace in the ''Project Explorer'' and select ''Configure Symbols''.

The symbol file for the kernel callstack can be obtained by getting the kallsyms file:

    sudo cat /proc/kallsyms > mykernelkallsyms.txt

For the userspace callstack, they can be obtained from a few methods. Read the [http://archive.eclipse.org/tracecompass/doc/stable/org.eclipse.tracecompass.doc.user/LTTng-UST-Analyses.html Trace Compass LTTng-UST documentation] for how to resolve symbols.

The first view this analysis populates is the '''Flame Graph''' view. It shows the sum of all the callstacks, per event, for the whole trace.

[[Image:images/callstackContextFlameGraph.png]]

Another view is the '''Stack Table''' which shows the callstack for the selected event.

[[Image:images/callstackContextStackTable.png]]
