Change LTTng help plugin generation
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.help / doc / LTTng-Kernel-Analysis.html
1 <?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">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5 <title>LTTng Plug-in User Guide - LTTng Kernel Analysis</title>
6 <link type="text/css" rel="stylesheet" href="book.css"/>
7 </head>
8 <body>
9 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
10 <tr>
11 <th style="width: 100%" align="center" colspan="3">LTTng Kernel Analysis</th>
12 </tr>
13 <tr>
14 <td style="width: 20%" align="left">
15 <a href="LTTng.html" title="LTTng">
16 <img alt="Previous" border="0" src="images/prev.gif"/>
17 </a>
18 </td>
19 <td style="width: 60%" align="center"></td>
20 <td style="width: 20%" align="right">
21 <a href="Limitations.html" title="Limitations">
22 <img alt="Next" border="0" src="images/next.gif"/>
23 </a>
24 </td>
25 </tr>
26 <tr>
27 <td style="width: 20%" align="left" valign="top">LTTng</td>
28 <td style="width: 60%" align="center"></td>
29 <td style="width: 20%" align="right" valign="top">Limitations</td>
30 </tr>
31 </table><hr/>
32 <h1 id="LTTng_Kernel_Analysis">LTTng Kernel Analysis</h1>
33 <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>
34 <p>This section presents a description of the LTTng Kernel Perspective.</p>
35 <h2 id="LTTng_Kernel_Perspective">LTTng Kernel Perspective</h2>
36 <p>The
37 <b>LTTng Kernel</b> perspective is built upon the
38 <a href="LTTng.html#Tracing_Perspective">Tracing Perspective</a>, re-organizes them slightly and adds the following views:
39 </p>
40 <ul>
41 <li>
42 <a href="LTTng-Kernel-Analysis.html#Control_Flow_View">Control Flow View</a> - to visualize processes state transitions
43 </li>
44 <li>
45 <a href="LTTng-Kernel-Analysis.html#Resources_View">Resources View</a> - to visualize system resources state transitions
46 </li>
47 </ul>
48 <p>
49 <img border="0" src="images/LTTngKernelPerspective.png"/>
50 </p>
51 <p>The perspective can be opened from the Eclipse Open Perspective dialog (
52 <b>Window &gt; Open Perspective... &gt; Other</b>).
53 </p>
54 <p>
55 <img border="0" src="images/OpenLTTngKernelPerspective.png"/>
56 </p>
57 <h2 id="Control_Flow_View">Control Flow View</h2>
58 <p>The
59 <b>
60 <i>Control Flow View</i>
61 </b> is a LTTng-specific view that shows per-process events graphically. To enable it, select
62 <i>Control Flow</i> under
63 <i>LTTng</i> within the
64 <i>Show View</i> window (
65 <b>Window</b> -&gt;
66 <b>Show View</b> -&gt;
67 <b>Other...</b>):
68 </p>
69 <p>
70 <img border="0" src="images/Cfv_show_view.png"/>
71 </p>
72 <p>You should get something like this:</p>
73 <p>
74 <img border="0" src="images/Cfv_global.png"/>
75 </p>
76 <p>The view is divided into the following important sections:
77 <b><span style="color: #C84545;">process tree</span></b>,
78 <b><span style="color: #A1C81A;">process TID, PTID and birth time</span></b>,
79 <b><span style="color: #67A3DC;">states flow</span></b> and the
80 <b><span style="color: #AD77D7;">toolbar</span></b>.
81 </p>
82 <p>The following sections provide detailed information for each part of the Control Flow View.</p>
83 <h3 id="Process_tree_and_informations">Process tree and informations</h3>
84 <p>Processes are organized as a tree within this view. This way, child and parent processes are easy to identify.</p>
85 <p>
86 <img border="0" src="images/Cfv_process_tree.png"/>
87 </p>
88 <p>The layout is based on the states computed from the trace events.</p>
89 <p>A given process may be shown at different places within the tree since the nodes are
90 <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
91 <a href="LTTng-Kernel-Analysis.html#States_flow">states flow</a> remains possible.
92 </p>
93 <p>The TID column shows the process node's
94 <b>thread ID</b> and the PTID column shows its
95 <b>parent thread ID</b> (nothing is shown if the process has no parent).
96 </p>
97 <h3 id="States_flow">States flow</h3>
98 <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>
99 <p>The colored bars you see represent
100 <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
101 <a href="LTTng-Kernel-Analysis.html#Toolbar">toolbar button</a>:
102 </p>
103 <p>
104 <img border="0" src="images/Cfv_legend.png"/>
105 </p>
106 <p>This dark yellow is what you'll see most of the time since scheduling puts processes on hold while others run.</p>
107 <p>The vertical blue line is the
108 <b>current time indicator</b>.
109 </p>
110 <h4 id="Using_the_mouse">Using the mouse</h4>
111 <p>The states flow is usable with the mouse. The following actions are set:</p>
112 <ul>
113 <li>
114 <b>drag horizontally</b>: pan left or right
115 </li>
116 <li>
117 <b>click on a colored bar</b>: the associated process node is selected and the current time indicator is moved where the click happened
118 </li>
119 <li>
120 <b>mouse wheel up/down</b>: zoom in or out
121 </li>
122 <li>
123 <b>drag the time ruler horizontally</b>: zoom in or out
124 </li>
125 <li>
126 <b>drag the time ruler horizontally with the right button</b>:
127 <a href="LTTng-Kernel-Analysis.html#Zoom_region">zoom region</a>
128 </li>
129 <li>
130 <b>double-click the time ruler</b>: reset zoom
131 </li>
132 </ul>
133 <p>When the current time indicator is changed (when clicking in the states flow), all the other views are
134 <b>synchronized</b>. For example, the
135 <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.
136 </p>
137 <h4 id="Incomplete_regions">Incomplete regions</h4>
138 <p>You'll notice
139 <b>small dots</b> over the colored bars at some places:
140 </p>
141 <p>
142 <img border="0" src="images/Cfv_small_dots.png"/>
143 </p>
144 <p>Those dots mean the underlying region is
145 <b>incomplete</b>: there's not enough pixels to view all the events. In other words, you have to zoom in.
146 </p>
147 <p>When zooming in, small dots start to disappear:</p>
148 <p>
149 <img border="0" src="images/Cfv_zoom.png"/>
150 </p>
151 <p>When no dots are left, you are viewing
152 <b>all the events and states</b> within that region.
153 </p>
154 <h4 id="Zoom_region">Zoom region</h4>
155 <p>To zoom in on a specific region,
156 <b>right-click and drag the time ruler</b> in order to draw a time range:
157 </p>
158 <p>
159 <img border="0" src="images/Cfv_zoom_region.png"/>
160 </p>
161 <p>The states flow horizontal space will only show the selected region.</p>
162 <h4 id="Tooltips">Tooltips</h4>
163 <p>Hover the cursor over a colored bar and a
164 <b>tooltip</b> will pop up:
165 </p>
166 <p>
167 <img border="0" src="images/Cfv_tooltip.png"/>
168 </p>
169 <p>The tooltip indicates:</p>
170 <ul>
171 <li>the process name</li>
172 <li>the pointed state name</li>
173 <li>the pointed state date and start/stop times</li>
174 <li>the pointed state duration (seconds)</li>
175 </ul>
176 <h3 id="Toolbar">Toolbar</h3>
177 <p>The Control Flow View
178 <b>toolbar</b>, located at the top right of the view, has shortcut buttons to perform common actions:
179 </p>
180 <p>
181 <img border="0" src="images/Cfv_toolbar.png"/>
182 </p>
183 <p>The
184 <b>Previous event</b> and
185 <b>Next event</b> buttons update the current time indicator so that it's on the previous or next event.
186 </p>
187 <p>The
188 <b>Previous process</b> and
189 <b>Next process</b> buttons select the previous and next process node within the process tree.
190 </p>
191 <h2 id="Resources_View">Resources View</h2>
192 <p>This view is specific to kernel trace. To open it, go in
193 <b>Window</b> -&gt;
194 <b>Show View</b> -&gt;
195 <b>Other...</b> and select
196 <b>LTTng/Resources</b> in the list.
197 </p>
198 <p>
199 <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"/>
200 </p>
201 <p>This view shows the state of system resources i.e. if changes occured during the trace either on
202 <b>CPUs</b>,
203 <b>IRQs</b> or
204 <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.
205 </p>
206 <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>
207 <p>Each state are represented by one color so it is faster to say what is happening.</p>
208 <p>
209 <img title="Color for each state" alt="Color for each state" border="0" src="images/Rv_legend.png"/>
210 </p>
211 <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>
212 <p>
213 <img title="Shows the state of an IRQ" alt="Shows the state of an IRQ" border="0" src="images/RV_infobox1.png"/>
214 </p>
215 <p>Then, by selecting
216 <b>Next Event</b>, it will show the next state transition and the event that occured at this time.
217 </p>
218 <p>
219 <img title="Shows the next state of the IRQ" alt="Shows the next state of the IRQ" border="0" src="images/RV_infobox2.png"/>
220 </p>
221 <p>This view is also synchronized with the others :
222 <a href="LTTng.html#Histogram_View">histogram</a>,
223 <a href="LTTng-Kernel-Analysis.html#Events_View_2">events view</a>,
224 <a href="LTTng-Kernel-Analysis.html#Control_Flow_View">control flow view</a>, etc.
225 </p>
226 <h3 id="Navigation">Navigation</h3>
227 <p>See Control Flow View's
228 <b>
229 <a href="LTTng-Kernel-Analysis.html#Using_the_mouse">Using the mouse</a>
230 </b> and
231 <b>
232 <a href="LTTng-Kernel-Analysis.html#Zoom_region">Zoom region</a>
233 </b>.
234 </p>
235 <h3 id="Incomplete_regions_2">Incomplete regions</h3>
236 <p>See Control Flow View's
237 <b>
238 <a href="LTTng-Kernel-Analysis.html#Incomplete_regions">Incomplete regions</a>
239 </b>.
240 </p>
241 <h3 id="Toolbar_2">Toolbar</h3>
242 <p>See Control Flow View's
243 <b>
244 <a href="LTTng-Kernel-Analysis.html#Toolbar">Toolbar</a>
245 </b>.
246 </p>
247 <h2 id="Events_View_2">Events View</h2>
248 <p>The LTTng Kernel Events View
249 <b>is</b> the plain TMF
250 <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:
251 </p>
252 <ul>
253 <li>
254 <b>Timestamp</b>: the event timestamp
255 </li>
256 <li>
257 <b>Channel</b>: the event channel (data collector)
258 </li>
259 <li>
260 <b>Event Type</b>: the event type (or kernel marker)
261 </li>
262 <li>
263 <b>Content</b>: the raw event content
264 </li>
265 </ul>
266 <p>
267 <img border="0" src="images/LTTngKernelEventsViewer.png"/>
268 </p><hr/>
269 <table class="navigation" style="width: 100%;" border="0" summary="navigation">
270 <tr>
271 <td style="width: 20%" align="left">
272 <a href="LTTng.html" title="LTTng">
273 <img alt="Previous" border="0" src="images/prev.gif"/>
274 </a>
275 </td>
276 <td style="width: 60%" align="center">
277 <a href="User-Guide.html" title="LTTng Plug-in User Guide">
278 <img alt="LTTng Plug-in User Guide" border="0" src="images/home.gif"/>
279 </a>
280 </td>
281 <td style="width: 20%" align="right">
282 <a href="Limitations.html" title="Limitations">
283 <img alt="Next" border="0" src="images/next.gif"/>
284 </a>
285 </td>
286 </tr>
287 <tr>
288 <td style="width: 20%" align="left" valign="top">LTTng</td>
289 <td style="width: 60%" align="center"></td>
290 <td style="width: 20%" align="right" valign="top">Limitations</td>
291 </tr>
292 </table>
293 </body>
294 </html>
This page took 0.045945 seconds and 5 git commands to generate.