Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lttng/org.eclipse.linuxtools.lttng.help/doc/LTTng-Kernel-Analysis.html')
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/doc/LTTng-Kernel-Analysis.html294
1 files changed, 294 insertions, 0 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/doc/LTTng-Kernel-Analysis.html b/lttng/org.eclipse.linuxtools.lttng.help/doc/LTTng-Kernel-Analysis.html
new file mode 100644
index 0000000000..ad935d2661
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/doc/LTTng-Kernel-Analysis.html
@@ -0,0 +1,294 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <title>LTTng Plug-in User Guide - LTTng Kernel Analysis</title>
+ <link type="text/css" rel="stylesheet" href="book.css"/>
+ </head>
+ <body>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <th style="width: 100%" align="center" colspan="3">LTTng Kernel Analysis</th>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left">
+ <a href="LTTng.html" title="LTTng">
+ <img alt="Previous" border="0" src="images/prev.gif"/>
+ </a>
+ </td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Limitations.html" title="Limitations">
+ <img alt="Next" border="0" src="images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top">LTTng</td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Limitations</td>
+ </tr>
+ </table><hr/>
+ <h1 id="LTTng_Kernel_Analysis">LTTng Kernel Analysis</h1>
+ <p>Historically, LTTng was developped to trace the Linux kernel and, over time, a number of kernel-oriented analysis views were developped and organized in a perspective.</p>
+ <p>This section presents a description of the LTTng Kernel Perspective.</p>
+ <h2 id="LTTng_Kernel_Perspective">LTTng Kernel Perspective</h2>
+ <p>The
+ <b>LTTng Kernel</b> perspective is built upon the
+ <a href="LTTng.html#Tracing_Perspective">Tracing Perspective</a>, re-organizes them slightly and adds the following views:
+ </p>
+ <ul>
+ <li>
+ <a href="LTTng-Kernel-Analysis.html#Control_Flow_View">Control Flow View</a> - to visualize processes state transitions
+ </li>
+ <li>
+ <a href="LTTng-Kernel-Analysis.html#Resources_View">Resources View</a> - to visualize system resources state transitions
+ </li>
+ </ul>
+ <p>
+ <img border="0" src="images/LTTngKernelPerspective.png"/>
+ </p>
+ <p>The perspective can be opened from the Eclipse Open Perspective dialog (
+ <b>Window &gt; Open Perspective... &gt; Other</b>).
+ </p>
+ <p>
+ <img border="0" src="images/OpenLTTngKernelPerspective.png"/>
+ </p>
+ <h2 id="Control_Flow_View">Control Flow View</h2>
+ <p>The
+ <b>
+ <i>Control Flow View</i>
+ </b> is a LTTng-specific view that shows per-process events graphically. To enable it, select
+ <i>Control Flow</i> under
+ <i>LTTng</i> within the
+ <i>Show View</i> window (
+ <b>Window</b> -&gt;
+ <b>Show View</b> -&gt;
+ <b>Other...</b>):
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_show_view.png"/>
+ </p>
+ <p>You should get something like this:</p>
+ <p>
+ <img border="0" src="images/Cfv_global.png"/>
+ </p>
+ <p>The view is divided into the following important sections:
+ <b><span style="color: #C84545;">process tree</span></b>,
+ <b><span style="color: #A1C81A;">process TID, PTID and birth time</span></b>,
+ <b><span style="color: #67A3DC;">states flow</span></b> and the
+ <b><span style="color: #AD77D7;">toolbar</span></b>.
+ </p>
+ <p>The following sections provide detailed information for each part of the Control Flow View.</p>
+ <h3 id="Process_tree_and_informations">Process tree and informations</h3>
+ <p>Processes are organized as a tree within this view. This way, child and parent processes are easy to identify.</p>
+ <p>
+ <img border="0" src="images/Cfv_process_tree.png"/>
+ </p>
+ <p>The layout is based on the states computed from the trace events.</p>
+ <p>A given process may be shown at different places within the tree since the nodes are
+ <b>unique (TID, birth time) couples</b>. This means that if process B of parent A dies, you'll still see it in the tree. If process A forks process B again, it will be shown as a different node since it won't have the same birth time (and probably not the same TID). This has the advantage that the tree, once loaded, never changes: horizontal scrolling within the
+ <a href="LTTng-Kernel-Analysis.html#States_flow">states flow</a> remains possible.
+ </p>
+ <p>The TID column shows the process node's
+ <b>thread ID</b> and the PTID column shows its
+ <b>parent thread ID</b> (nothing is shown if the process has no parent).
+ </p>
+ <h3 id="States_flow">States flow</h3>
+ <p>This part of the Control Flow View is probably the most interesting one. Using the mouse, you can navigate through the trace (go left, right) and zoom on a specific region to inspect its details.</p>
+ <p>The colored bars you see represent
+ <b>states</b> for the associated process node. When a process state changes in time, so does the color. States colors legend is available through a
+ <a href="LTTng-Kernel-Analysis.html#Toolbar">toolbar button</a>:
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_legend.png"/>
+ </p>
+ <p>This dark yellow is what you'll see most of the time since scheduling puts processes on hold while others run.</p>
+ <p>The vertical blue line is the
+ <b>current time indicator</b>.
+ </p>
+ <h4 id="Using_the_mouse">Using the mouse</h4>
+ <p>The states flow is usable with the mouse. The following actions are set:</p>
+ <ul>
+ <li>
+ <b>drag horizontally</b>: pan left or right
+ </li>
+ <li>
+ <b>click on a colored bar</b>: the associated process node is selected and the current time indicator is moved where the click happened
+ </li>
+ <li>
+ <b>mouse wheel up/down</b>: zoom in or out
+ </li>
+ <li>
+ <b>drag the time ruler horizontally</b>: zoom in or out
+ </li>
+ <li>
+ <b>drag the time ruler horizontally with the right button</b>:
+ <a href="LTTng-Kernel-Analysis.html#Zoom_region">zoom region</a>
+ </li>
+ <li>
+ <b>double-click the time ruler</b>: reset zoom
+ </li>
+ </ul>
+ <p>When the current time indicator is changed (when clicking in the states flow), all the other views are
+ <b>synchronized</b>. For example, the
+ <a href="LTTng-Kernel-Analysis.html#Events_View_2">Events View</a> will show the event matching the current time indicator. The reverse behaviour is also implemented: selecting an event within the Events View will update the Control Flow View current time indicator.
+ </p>
+ <h4 id="Incomplete_regions">Incomplete regions</h4>
+ <p>You'll notice
+ <b>small dots</b> over the colored bars at some places:
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_small_dots.png"/>
+ </p>
+ <p>Those dots mean the underlying region is
+ <b>incomplete</b>: there's not enough pixels to view all the events. In other words, you have to zoom in.
+ </p>
+ <p>When zooming in, small dots start to disappear:</p>
+ <p>
+ <img border="0" src="images/Cfv_zoom.png"/>
+ </p>
+ <p>When no dots are left, you are viewing
+ <b>all the events and states</b> within that region.
+ </p>
+ <h4 id="Zoom_region">Zoom region</h4>
+ <p>To zoom in on a specific region,
+ <b>right-click and drag the time ruler</b> in order to draw a time range:
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_zoom_region.png"/>
+ </p>
+ <p>The states flow horizontal space will only show the selected region.</p>
+ <h4 id="Tooltips">Tooltips</h4>
+ <p>Hover the cursor over a colored bar and a
+ <b>tooltip</b> will pop up:
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_tooltip.png"/>
+ </p>
+ <p>The tooltip indicates:</p>
+ <ul>
+ <li>the process name</li>
+ <li>the pointed state name</li>
+ <li>the pointed state date and start/stop times</li>
+ <li>the pointed state duration (seconds)</li>
+ </ul>
+ <h3 id="Toolbar">Toolbar</h3>
+ <p>The Control Flow View
+ <b>toolbar</b>, located at the top right of the view, has shortcut buttons to perform common actions:
+ </p>
+ <p>
+ <img border="0" src="images/Cfv_toolbar.png"/>
+ </p>
+ <p>The
+ <b>Previous event</b> and
+ <b>Next event</b> buttons update the current time indicator so that it's on the previous or next event.
+ </p>
+ <p>The
+ <b>Previous process</b> and
+ <b>Next process</b> buttons select the previous and next process node within the process tree.
+ </p>
+ <h2 id="Resources_View">Resources View</h2>
+ <p>This view is specific to kernel trace. To open it, go in
+ <b>Window</b> -&gt;
+ <b>Show View</b> -&gt;
+ <b>Other...</b> and select
+ <b>LTTng/Resources</b> in the list.
+ </p>
+ <p>
+ <img title=" Example of resources view with all trace points and syscalls enabled" alt=" Example of resources view with all trace points and syscalls enabled" border="0" src="images/Rv example.png"/>
+ </p>
+ <p>This view shows the state of system resources i.e. if changes occured during the trace either on
+ <b>CPUs</b>,
+ <b>IRQs</b> or
+ <b>soft IRQs</b>, it will appear in this view. The left side of the view present a list of resources that are affected by at least one event of the trace. The right side illustrate the state in which each resource is at some point in time.
+ </p>
+ <p>Just like other views, according to which trace points and system calls are activated, the content of this view may change from one trace to another.</p>
+ <p>Each state are represented by one color so it is faster to say what is happening.</p>
+ <p>
+ <img title="Color for each state" alt="Color for each state" border="0" src="images/Rv_legend.png"/>
+ </p>
+ <p>To go through the state of a resource, you first have to select the resource and the timestamp that interest you. For the latter, you can pick some time before the interesting part of the trace.</p>
+ <p>
+ <img title="Shows the state of an IRQ" alt="Shows the state of an IRQ" border="0" src="images/RV_infobox1.png"/>
+ </p>
+ <p>Then, by selecting
+ <b>Next Event</b>, it will show the next state transition and the event that occured at this time.
+ </p>
+ <p>
+ <img title="Shows the next state of the IRQ" alt="Shows the next state of the IRQ" border="0" src="images/RV_infobox2.png"/>
+ </p>
+ <p>This view is also synchronized with the others :
+ <a href="LTTng.html#Histogram_View">histogram</a>,
+ <a href="LTTng-Kernel-Analysis.html#Events_View_2">events view</a>,
+ <a href="LTTng-Kernel-Analysis.html#Control_Flow_View">control flow view</a>, etc.
+ </p>
+ <h3 id="Navigation">Navigation</h3>
+ <p>See Control Flow View's
+ <b>
+ <a href="LTTng-Kernel-Analysis.html#Using_the_mouse">Using the mouse</a>
+ </b> and
+ <b>
+ <a href="LTTng-Kernel-Analysis.html#Zoom_region">Zoom region</a>
+ </b>.
+ </p>
+ <h3 id="Incomplete_regions_2">Incomplete regions</h3>
+ <p>See Control Flow View's
+ <b>
+ <a href="LTTng-Kernel-Analysis.html#Incomplete_regions">Incomplete regions</a>
+ </b>.
+ </p>
+ <h3 id="Toolbar_2">Toolbar</h3>
+ <p>See Control Flow View's
+ <b>
+ <a href="LTTng-Kernel-Analysis.html#Toolbar">Toolbar</a>
+ </b>.
+ </p>
+ <h2 id="Events_View_2">Events View</h2>
+ <p>The LTTng Kernel Events View
+ <b>is</b> the plain TMF
+ <a href="LTTng.html#Events_View">Events Views</a> except that it provide its own specialized viewer to replace the standard one. In short, it has exactly the same behaviour but the layout is slightly different:
+ </p>
+ <ul>
+ <li>
+ <b>Timestamp</b>: the event timestamp
+ </li>
+ <li>
+ <b>Channel</b>: the event channel (data collector)
+ </li>
+ <li>
+ <b>Event Type</b>: the event type (or kernel marker)
+ </li>
+ <li>
+ <b>Content</b>: the raw event content
+ </li>
+ </ul>
+ <p>
+ <img border="0" src="images/LTTngKernelEventsViewer.png"/>
+ </p><hr/>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <td style="width: 20%" align="left">
+ <a href="LTTng.html" title="LTTng">
+ <img alt="Previous" border="0" src="images/prev.gif"/>
+ </a>
+ </td>
+ <td style="width: 60%" align="center">
+ <a href="User-Guide.html" title="LTTng Plug-in User Guide">
+ <img alt="LTTng Plug-in User Guide" border="0" src="images/home.gif"/>
+ </a>
+ </td>
+ <td style="width: 20%" align="right">
+ <a href="Limitations.html" title="Limitations">
+ <img alt="Next" border="0" src="images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top">LTTng</td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Limitations</td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file

Back to the top