summaryrefslogtreecommitdiffstats
path: root/SystemTap_Beginners_Guide
diff options
authorfche <fche>2015-10-09 13:25:43 +0000
committerfche <fche>2015-10-09 13:25:43 +0000
commitb5fc8343680b68a5f59fcf7588e76f301166d84a (patch)
tree8bc36c3719f72eee090a269d66315c1f16edd854 /SystemTap_Beginners_Guide
parentadd new langref/*.html (diff)
removed man pages
Diffstat (limited to 'SystemTap_Beginners_Guide')
-rw-r--r--SystemTap_Beginners_Guide/SystemTap_Beginners_Guide-Preface.html8
-rw-r--r--SystemTap_Beginners_Guide/arrayoperators.html4
-rw-r--r--SystemTap_Beginners_Guide/arrayops-aggregates.html12
-rw-r--r--SystemTap_Beginners_Guide/arrayops-conditionals.html4
-rw-r--r--SystemTap_Beginners_Guide/arrayops-deleting.html4
-rw-r--r--SystemTap_Beginners_Guide/arrayops-foreach.html4
-rw-r--r--SystemTap_Beginners_Guide/arrayops-increment.html2
-rw-r--r--SystemTap_Beginners_Guide/arrayops-readvalues.html6
-rw-r--r--SystemTap_Beginners_Guide/associativearrays.html2
-rw-r--r--SystemTap_Beginners_Guide/commandlineargssect.html4
-rw-r--r--SystemTap_Beginners_Guide/cross-compiling.html24
-rw-r--r--SystemTap_Beginners_Guide/errors.html50
-rw-r--r--SystemTap_Beginners_Guide/futexcontentionsect.html6
-rw-r--r--SystemTap_Beginners_Guide/handlerconditionalstatements.html10
-rw-r--r--SystemTap_Beginners_Guide/index.html6
-rw-r--r--SystemTap_Beginners_Guide/inodewatch2sect.html2
-rw-r--r--SystemTap_Beginners_Guide/inodewatchsect.html4
-rw-r--r--SystemTap_Beginners_Guide/intro-systemtap-limitations.html2
-rw-r--r--SystemTap_Beginners_Guide/intro-systemtap-vs-others.html2
-rw-r--r--SystemTap_Beginners_Guide/introduction.html4
-rw-r--r--SystemTap_Beginners_Guide/ioblktimesect.html2
-rw-r--r--SystemTap_Beginners_Guide/iotimesect.html4
-rw-r--r--SystemTap_Beginners_Guide/ix01.html2
-rw-r--r--SystemTap_Beginners_Guide/mainsect-disk.html4
-rw-r--r--SystemTap_Beginners_Guide/mainsect-profiling.html4
-rw-r--r--SystemTap_Beginners_Guide/paracallgraph.html6
-rw-r--r--SystemTap_Beginners_Guide/pr01s02.html4
-rw-r--r--SystemTap_Beginners_Guide/runtimeerror.html34
-rw-r--r--SystemTap_Beginners_Guide/scriptconstructions.html8
-rw-r--r--SystemTap_Beginners_Guide/scripts.html34
-rw-r--r--SystemTap_Beginners_Guide/syscallsbyprocpidsect.html2
-rw-r--r--SystemTap_Beginners_Guide/systemtapscript-handler.html22
-rw-r--r--SystemTap_Beginners_Guide/targetavailable.html2
-rw-r--r--SystemTap_Beginners_Guide/targetvariables.html4
-rw-r--r--SystemTap_Beginners_Guide/threadtimessect.html4
-rw-r--r--SystemTap_Beginners_Guide/timeoutssect.html4
-rw-r--r--SystemTap_Beginners_Guide/topsyssect.html4
-rw-r--r--SystemTap_Beginners_Guide/traceio2sect.html4
-rw-r--r--SystemTap_Beginners_Guide/traceiosect.html4
-rw-r--r--SystemTap_Beginners_Guide/typecasting.html2
-rw-r--r--SystemTap_Beginners_Guide/understanding-how-systemtap-works.html10
-rw-r--r--SystemTap_Beginners_Guide/understanding-tapsets.html2
-rw-r--r--SystemTap_Beginners_Guide/useful-systemtap-scripts.html16
-rw-r--r--SystemTap_Beginners_Guide/userspace-probing.html2
-rw-r--r--SystemTap_Beginners_Guide/using-systemtap.html12
-rw-r--r--SystemTap_Beginners_Guide/using-usage.html16
-rw-r--r--SystemTap_Beginners_Guide/ustack.html2
-rw-r--r--SystemTap_Beginners_Guide/utargetvariable.html2
48 files changed, 188 insertions, 188 deletions
diff --git a/SystemTap_Beginners_Guide/SystemTap_Beginners_Guide-Preface.html b/SystemTap_Beginners_Guide/SystemTap_Beginners_Guide-Preface.html
index 6d8a88db..ec865ab4 100644
--- a/SystemTap_Beginners_Guide/SystemTap_Beginners_Guide-Preface.html
+++ b/SystemTap_Beginners_Guide/SystemTap_Beginners_Guide-Preface.html
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Preface</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="pr01s02.html" title="2. We Need Feedback!" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="index.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="pr01s02.html"><strong>Next</strong></a></li></ul><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="SystemTap_Beginners_Guide-Preface"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Preface</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="pr01s02.html" title="2. We Need Feedback!" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="index.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="pr01s02.html"><strong>Next</strong></a></li></ul><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="SystemTap_Beginners_Guide-Preface">
3 ⁠</a>Preface</h1></div></div></div><div class="para"> 3 ⁠</a>Preface</h1></div></div></div><div class="para">
4 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="idm140217038171440"> 4 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="idm47006128487520">
5 ⁠</a>1. Document Conventions</h2></div></div></div><div class="para"> 5 ⁠</a>1. Document Conventions</h2></div></div></div><div class="para">
6 This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information. 6 This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.
7 </div><div class="para"> 7 </div><div class="para">
8 In PDF and paper editions, this manual uses typefaces drawn from the <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later include the Liberation Fonts set by default. 8 In PDF and paper editions, this manual uses typefaces drawn from the <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later include the Liberation Fonts set by default.
9 </div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm140217037252256"> 9 </div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47006131251456">
10 ⁠</a>1.1. Typographic Conventions</h3></div></div></div><div class="para"> 10 ⁠</a>1.1. Typographic Conventions</h3></div></div></div><div class="para">
11 Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows. 11 Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.
12 </div><div class="para"> 12 </div><div class="para">
@@ -55,7 +55,7 @@
55 Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example: 55 Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
56 </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> 56 </div><div class="blockquote"><blockquote class="blockquote"><div class="para">
57 Publican is a <em class="firstterm">DocBook</em> publishing system. 57 Publican is a <em class="firstterm">DocBook</em> publishing system.
58 </div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm140217036723552"> 58 </div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47006124817712">
59 ⁠</a>1.2. Pull-quote Conventions</h3></div></div></div><div class="para"> 59 ⁠</a>1.2. Pull-quote Conventions</h3></div></div></div><div class="para">
60 Terminal output and source code listings are set off visually from the surrounding text. 60 Terminal output and source code listings are set off visually from the surrounding text.
61 </div><div class="para"> 61 </div><div class="para">
@@ -81,7 +81,7 @@ public class ExClient
81 81
82 System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); 82 System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
83 } 83 }
84}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm140217036445936"> 84}</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm47006123073008">
85 ⁠</a>1.3. Notes and Warnings</h3></div></div></div><div class="para"> 85 ⁠</a>1.3. Notes and Warnings</h3></div></div></div><div class="para">
86 Finally, we use three visual styles to draw attention to information that might otherwise be overlooked. 86 Finally, we use three visual styles to draw attention to information that might otherwise be overlooked.
87 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para"> 87 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
diff --git a/SystemTap_Beginners_Guide/arrayoperators.html b/SystemTap_Beginners_Guide/arrayoperators.html
index 4e6cc2be..efb0f27a 100644
--- a/SystemTap_Beginners_Guide/arrayoperators.html
+++ b/SystemTap_Beginners_Guide/arrayoperators.html
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5. Array Operations in SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="associativearrays.html" title="3.4. Associative Arrays" /><link rel="next" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="associativearrays.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-readvalues.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="arrayoperators"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5. Array Operations in SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="associativearrays.html" title="3.4. Associative Arrays" /><link rel="next" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="associativearrays.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-readvalues.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="arrayoperators">
3 ⁠</a>3.5. Array Operations in SystemTap</h2></div></div></div><a id="idm140217034806832" class="indexterm"></a><a id="idm140217035611168" class="indexterm"></a><div class="para">This section enumerates some of the most commonly used array operations in SystemTap.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-assignvalue"> 3 ⁠</a>3.5. Array Operations in SystemTap</h2></div></div></div><a id="idm47006118387248" class="indexterm"></a><a id="idm47006120000032" class="indexterm"></a><div class="para">This section enumerates some of the most commonly used array operations in SystemTap.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-assignvalue">
4 ⁠</a>3.5.1. Assigning an Associated Value</h3></div></div></div><a id="idm140217043307344" class="indexterm"></a><a id="idm140217043282208" class="indexterm"></a><a id="idm140217038199168" class="indexterm"></a><div class="para">Use <code class="command">=</code> to set an associated value to indexed unique pairs, as in:</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] = <em class="replaceable">value</em></pre><div class="para"><a class="xref" href="associativearrays.html#arraysimplestexample">Example 3.13, “Basic Array Statements”</a> shows a very basic example of how to set an explicit associated value to a unique key. You can also use a handler function as both your <code class="command"><em class="replaceable">index_expression</em></code> and <code class="command"><em class="replaceable">value</em></code>. For example, you can use arrays to set a timestamp as the associated value to a process name (which you wish to use as your unique key), as in:</div><a id="idm140217042192160" class="indexterm"></a><a id="idm140217038019024" class="indexterm"></a><a id="idm140217036569504" class="indexterm"></a><a id="idm140217035810272" class="indexterm"></a><a id="idm140217036701120" class="indexterm"></a><a id="idm140217042150368" class="indexterm"></a><div class="example"><a id="arrays-timestampprocessname"> 4 ⁠</a>3.5.1. Assigning an Associated Value</h3></div></div></div><a id="idm47006123790032" class="indexterm"></a><a id="idm47006129735024" class="indexterm"></a><a id="idm47006128816944" class="indexterm"></a><div class="para">Use <code class="command">=</code> to set an associated value to indexed unique pairs, as in:</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] = <em class="replaceable">value</em></pre><div class="para"><a class="xref" href="associativearrays.html#arraysimplestexample">Example 3.13, “Basic Array Statements”</a> shows a very basic example of how to set an explicit associated value to a unique key. You can also use a handler function as both your <code class="command"><em class="replaceable">index_expression</em></code> and <code class="command"><em class="replaceable">value</em></code>. For example, you can use arrays to set a timestamp as the associated value to a process name (which you wish to use as your unique key), as in:</div><a id="idm47006125088704" class="indexterm"></a><a id="idm47006121108000" class="indexterm"></a><a id="idm47006125972160" class="indexterm"></a><a id="idm47006125970160" class="indexterm"></a><a id="idm47006120428032" class="indexterm"></a><a id="idm47006122723104" class="indexterm"></a><div class="example"><a id="arrays-timestampprocessname">
5 ⁠</a><p class="title"><strong>Example 3.14. Associating Timestamps to Process Names</strong></p><div class="example-contents"><pre class="programlisting">foo[tid()] = gettimeofday_s()</pre></div></div><div class="para">Whenever an event invokes the statement in <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a>, SystemTap returns the appropriate <code class="command">tid()</code> value (that is, the ID of a thread, which is then used as the unique key). At the same time, SystemTap also uses the function <code class="command">gettimeofday_s()</code> to set the corresponding timestamp as the associated value to the unique key defined by the function <code class="command">tid()</code>. This creates an array composed of key pairs containing thread IDs and timestamps.</div><div class="para">In this same example, if <code class="command">tid()</code> returns a value that is already defined in the array <code class="command">foo</code>, the operator will discard the original associated value to it, and replace it with the current timestamp from <code class="command">gettimeofday_s()</code>.</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="associativearrays.html"><strong>Prev</strong>3.4. Associative Arrays</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="arrayops-readvalues.html"><strong>Next</strong>3.5.2. Reading Values From Arrays</a></li></ul></body></html> \ No newline at end of file 5 ⁠</a><p class="title"><strong>Example 3.14. Associating Timestamps to Process Names</strong></p><div class="example-contents"><pre class="programlisting">foo[tid()] = gettimeofday_s()</pre></div></div><div class="para">Whenever an event invokes the statement in <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a>, SystemTap returns the appropriate <code class="command">tid()</code> value (that is, the ID of a thread, which is then used as the unique key). At the same time, SystemTap also uses the function <code class="command">gettimeofday_s()</code> to set the corresponding timestamp as the associated value to the unique key defined by the function <code class="command">tid()</code>. This creates an array composed of key pairs containing thread IDs and timestamps.</div><div class="para">In this same example, if <code class="command">tid()</code> returns a value that is already defined in the array <code class="command">foo</code>, the operator will discard the original associated value to it, and replace it with the current timestamp from <code class="command">gettimeofday_s()</code>.</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="associativearrays.html"><strong>Prev</strong>3.4. Associative Arrays</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="arrayops-readvalues.html"><strong>Next</strong>3.5.2. Reading Values From Arrays</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/arrayops-aggregates.html b/SystemTap_Beginners_Guide/arrayops-aggregates.html
index f6d66e8c..b348430f 100644
--- a/SystemTap_Beginners_Guide/arrayops-aggregates.html
+++ b/SystemTap_Beginners_Guide/arrayops-aggregates.html
@@ -1,19 +1,19 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.7. Computing for Statistical Aggregates</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /><link rel="next" href="understanding-tapsets.html" title="3.6. Tapsets" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-conditionals.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-tapsets.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-aggregates"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.7. Computing for Statistical Aggregates</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /><link rel="next" href="understanding-tapsets.html" title="3.6. Tapsets" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-conditionals.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-tapsets.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-aggregates">
3 ⁠</a>3.5.7. Computing for Statistical Aggregates</h3></div></div></div><a id="idm140217040306336" class="indexterm"></a><a id="idm140217040304720" class="indexterm"></a><a id="idm140217040049728" class="indexterm"></a><a id="idm140217044550080" class="indexterm"></a><a id="idm140217043310368" class="indexterm"></a><div class="para">Statistical aggregates are used to collect statistics on numerical values where it is important to accumulate new data quickly and in large volume (that is, storing only aggregated stream statistics). Statistical aggregates can be used in global variables or as elements in an array.</div><a id="idm140217036322688" class="indexterm"></a><a id="idm140217038690688" class="indexterm"></a><a id="idm140217038688640" class="indexterm"></a><a id="idm140217045015744" class="indexterm"></a><div class="para">To add value to a statistical aggregate, use the operator <code class="command">&lt;&lt;&lt; <em class="replaceable">value</em></code>.</div><div class="example"><a id="simpleaggregates"> 3 ⁠</a>3.5.7. Computing for Statistical Aggregates</h3></div></div></div><a id="idm47006119947136" class="indexterm"></a><a id="idm47006119945520" class="indexterm"></a><a id="idm47006125743872" class="indexterm"></a><a id="idm47006125742240" class="indexterm"></a><a id="idm47006125740608" class="indexterm"></a><div class="para">Statistical aggregates are used to collect statistics on numerical values where it is important to accumulate new data quickly and in large volume (that is, storing only aggregated stream statistics). Statistical aggregates can be used in global variables or as elements in an array.</div><a id="idm47006120488688" class="indexterm"></a><a id="idm47006121115856" class="indexterm"></a><a id="idm47006121113760" class="indexterm"></a><a id="idm47006120496240" class="indexterm"></a><div class="para">To add value to a statistical aggregate, use the operator <code class="command">&lt;&lt;&lt; <em class="replaceable">value</em></code>.</div><div class="example"><a id="simpleaggregates">
4 ⁠</a><p class="title"><strong>Example 3.21. stat-aggregates.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads 4 ⁠</a><p class="title"><strong>Example 3.21. stat-aggregates.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
5probe vfs.read 5probe vfs.read
6{ 6{
7 reads[execname()] &lt;&lt;&lt; $count 7 reads[execname()] &lt;&lt;&lt; $count
8}</pre></div></div><a id="idm140217038004096" class="indexterm"></a><a id="idm140217037421920" class="indexterm"></a><a id="idm140217040353808" class="indexterm"></a><a id="idm140217040351728" class="indexterm"></a><div class="para">In <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the operator <code class="command">&lt;&lt;&lt; $count</code> <span class="emphasis"><em>stores</em></span> the amount returned by <code class="literal">$count</code> to the associated value of the corresponding <code class="command">execname()</code> in the <code class="literal">reads</code> array. Remember, these values are <span class="emphasis"><em>stored</em></span>; they are not added to the associated values of each unique key, nor are they used to replace the current associated values. In a manner of speaking, think of it as having each unique key (<code class="command">execname()</code>) having multiple associated values, accumulating with each probe handler run.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">In the context of <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, <code class="literal">count</code> returns the amount of data read by the returned <code class="command">execname()</code> to the virtual file system.</div></div></div><a id="idm140217034649472" class="indexterm"></a><a id="idm140217042107136" class="indexterm"></a><a id="idm140217043357360" class="indexterm"></a><a id="idm140217037154800" class="indexterm"></a><a id="idm140217037152752" class="indexterm"></a><div class="para">To extract data collected by statistical aggregates, use the syntax format <code class="command">@<em class="replaceable">extractor</em>(<em class="replaceable">variable/array index expression</em>)</code>. <code class="command"><em class="replaceable">extractor</em></code> can be any of the following integer extractors:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">count</span></dt><dd><a id="idm140217039126816" class="indexterm"></a><a id="idm140217044431776" class="indexterm"></a><a id="idm140217040057952" class="indexterm"></a><a id="idm140217040055856" class="indexterm"></a><div class="para"> 8}</pre></div></div><a id="idm47006125882384" class="indexterm"></a><a id="idm47006119043120" class="indexterm"></a><a id="idm47006119041040" class="indexterm"></a><a id="idm47006126947792" class="indexterm"></a><div class="para">In <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the operator <code class="command">&lt;&lt;&lt; $count</code> <span class="emphasis"><em>stores</em></span> the amount returned by <code class="literal">$count</code> to the associated value of the corresponding <code class="command">execname()</code> in the <code class="literal">reads</code> array. Remember, these values are <span class="emphasis"><em>stored</em></span>; they are not added to the associated values of each unique key, nor are they used to replace the current associated values. In a manner of speaking, think of it as having each unique key (<code class="command">execname()</code>) having multiple associated values, accumulating with each probe handler run.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">In the context of <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, <code class="literal">count</code> returns the amount of data read by the returned <code class="command">execname()</code> to the virtual file system.</div></div></div><a id="idm47006120406096" class="indexterm"></a><a id="idm47006118430320" class="indexterm"></a><a id="idm47006118428272" class="indexterm"></a><a id="idm47006119800736" class="indexterm"></a><a id="idm47006119798688" class="indexterm"></a><div class="para">To extract data collected by statistical aggregates, use the syntax format <code class="command">@<em class="replaceable">extractor</em>(<em class="replaceable">variable/array index expression</em>)</code>. <code class="command"><em class="replaceable">extractor</em></code> can be any of the following integer extractors:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">count</span></dt><dd><a id="idm47006125901520" class="indexterm"></a><a id="idm47006127950016" class="indexterm"></a><a id="idm47006127947920" class="indexterm"></a><a id="idm47006123123344" class="indexterm"></a><div class="para">
9 Returns the number of all values stored into the variable/array index expression. Given the sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@count(reads[execname()])</code> will return <span class="emphasis"><em>how many values are stored</em></span> in each unique key in array <code class="literal">reads</code>. 9 Returns the number of all values stored into the variable/array index expression. Given the sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@count(reads[execname()])</code> will return <span class="emphasis"><em>how many values are stored</em></span> in each unique key in array <code class="literal">reads</code>.
10</div></dd><dt><span class="term">sum</span></dt><dd><a id="idm140217033149328" class="indexterm"></a><a id="idm140217035787520" class="indexterm"></a><a id="idm140217039151152" class="indexterm"></a><a id="idm140217039149056" class="indexterm"></a><div class="para"> 10</div></dd><dt><span class="term">sum</span></dt><dd><a id="idm47006128942624" class="indexterm"></a><a id="idm47006128940528" class="indexterm"></a><a id="idm47006127945456" class="indexterm"></a><a id="idm47006127943472" class="indexterm"></a><div class="para">
11 Returns the sum of all values stored into the variable/array index expression. Again, given sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@sum(reads[execname()])</code> will return <span class="emphasis"><em>the total of all values stored</em></span> in each unique key in array <code class="literal">reads</code>. 11 Returns the sum of all values stored into the variable/array index expression. Again, given sample probe in <a class="xref" href="arrayops-aggregates.html#simpleaggregates">Example 3.21, “stat-aggregates.stp”</a>, the expression <code class="command">@sum(reads[execname()])</code> will return <span class="emphasis"><em>the total of all values stored</em></span> in each unique key in array <code class="literal">reads</code>.
12</div></dd><dt><span class="term">min</span></dt><dd><a id="idm140217036531456" class="indexterm"></a><a id="idm140217044040528" class="indexterm"></a><a id="idm140217043299552" class="indexterm"></a><a id="idm140217043297456" class="indexterm"></a><div class="para"> 12</div></dd><dt><span class="term">min</span></dt><dd><a id="idm47006129491424" class="indexterm"></a><a id="idm47006125964048" class="indexterm"></a><a id="idm47006125961952" class="indexterm"></a><a id="idm47006128845056" class="indexterm"></a><div class="para">
13 Returns the smallest among all the values stored in the variable/array index expression. 13 Returns the smallest among all the values stored in the variable/array index expression.
14</div></dd><dt><span class="term">max</span></dt><dd><a id="idm140217036170320" class="indexterm"></a><a id="idm140217045100704" class="indexterm"></a><a id="idm140217038492080" class="indexterm"></a><a id="idm140217038489984" class="indexterm"></a><div class="para"> 14</div></dd><dt><span class="term">max</span></dt><dd><a id="idm47006126165264" class="indexterm"></a><a id="idm47006123016240" class="indexterm"></a><a id="idm47006123014256" class="indexterm"></a><a id="idm47006124476736" class="indexterm"></a><div class="para">
15 Returns the largest among all the values stored in the variable/array index expression. 15 Returns the largest among all the values stored in the variable/array index expression.
16</div></dd><dt><span class="term">avg</span></dt><dd><a id="idm140217036951296" class="indexterm"></a><a id="idm140217038268384" class="indexterm"></a><a id="idm140217038266400" class="indexterm"></a><a id="idm140217045226160" class="indexterm"></a><div class="para"> 16</div></dd><dt><span class="term">avg</span></dt><dd><a id="idm47006129116944" class="indexterm"></a><a id="idm47006123242224" class="indexterm"></a><a id="idm47006123240128" class="indexterm"></a><a id="idm47006118440848" class="indexterm"></a><div class="para">
17 Returns the average of all values stored in the variable/array index expression. 17 Returns the average of all values stored in the variable/array index expression.
18</div></dd></dl></div><div class="para"> 18</div></dd></dl></div><div class="para">
19 When using statistical aggregates, you can also build array constructs that use multiple index 19 When using statistical aggregates, you can also build array constructs that use multiple index
diff --git a/SystemTap_Beginners_Guide/arrayops-conditionals.html b/SystemTap_Beginners_Guide/arrayops-conditionals.html
index 0fdeaec0..36386cff 100644
--- a/SystemTap_Beginners_Guide/arrayops-conditionals.html
+++ b/SystemTap_Beginners_Guide/arrayops-conditionals.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.6. Using Arrays in Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /><link rel="next" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-deleting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-aggregates.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-conditionals"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.6. Using Arrays in Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /><link rel="next" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-deleting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-aggregates.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-conditionals">
3 ⁠</a>3.5.6. Using Arrays in Conditional Statements</h3></div></div></div><a id="idm140217039129856" class="indexterm"></a><a id="idm140217039128224" class="indexterm"></a><a id="idm140217036584112" class="indexterm"></a><a id="idm140217034326336" class="indexterm"></a><div class="para">You can also use associative arrays in <code class="command">if</code> statements. This is useful if you want to execute a subroutine once a value in the array matches a certain condition. Consider the following example:</div><div class="example"><a id="simplevfsreadprintif"> 3 ⁠</a>3.5.6. Using Arrays in Conditional Statements</h3></div></div></div><a id="idm47006123993680" class="indexterm"></a><a id="idm47006123992048" class="indexterm"></a><a id="idm47006124930928" class="indexterm"></a><a id="idm47006124929296" class="indexterm"></a><div class="para">You can also use associative arrays in <code class="command">if</code> statements. This is useful if you want to execute a subroutine once a value in the array matches a certain condition. Consider the following example:</div><div class="example"><a id="simplevfsreadprintif">
4 ⁠</a><p class="title"><strong>Example 3.19. vfsreads-print-if-1kb.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads 4 ⁠</a><p class="title"><strong>Example 3.19. vfsreads-print-if-1kb.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
5probe vfs.read 5probe vfs.read
6{ 6{
@@ -15,7 +15,7 @@ probe timer.s(3)
15 printf("%s : %dkB \n", count, reads[count]/1024) 15 printf("%s : %dkB \n", count, reads[count]/1024)
16 else 16 else
17 printf("%s : %dB \n", count, reads[count]) 17 printf("%s : %dB \n", count, reads[count])
18}</pre></div></div><div class="para">Every three seconds, <a class="xref" href="arrayops-conditionals.html#simplevfsreadprintif">Example 3.19, “vfsreads-print-if-1kb.stp”</a> prints out a list of all processes, along with how many times each process performed a VFS read. If the associated value of a process name is equal or greater than 1024, the <code class="command">if</code> statement in the script converts and prints it out in <code class="command">kB</code>.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Testing for Membership</div><a id="idm140217037347808" class="indexterm"></a><a id="idm140217044843504" class="indexterm"></a><a id="idm140217040364288" class="indexterm"></a><a id="idm140217039970080" class="indexterm"></a><a id="idm140217039967984" class="indexterm"></a>You can also test whether a specific unique key is a member of an array. Further, membership in an array can be used in <code class="command">if</code> statements, as in:</div><pre class="screen">if([<em class="replaceable">index_expression</em>] in <em class="replaceable">array_name</em>) <em class="replaceable">statement</em></pre><div class="para">To illustrate this, consider the following example:</div><div class="example"><a id="simplesimplevfsreadprintifmember"> 18}</pre></div></div><div class="para">Every three seconds, <a class="xref" href="arrayops-conditionals.html#simplevfsreadprintif">Example 3.19, “vfsreads-print-if-1kb.stp”</a> prints out a list of all processes, along with how many times each process performed a VFS read. If the associated value of a process name is equal or greater than 1024, the <code class="command">if</code> statement in the script converts and prints it out in <code class="command">kB</code>.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Testing for Membership</div><a id="idm47006119841744" class="indexterm"></a><a id="idm47006123969856" class="indexterm"></a><a id="idm47006124836032" class="indexterm"></a><a id="idm47006124833984" class="indexterm"></a><a id="idm47006123966736" class="indexterm"></a>You can also test whether a specific unique key is a member of an array. Further, membership in an array can be used in <code class="command">if</code> statements, as in:</div><pre class="screen">if([<em class="replaceable">index_expression</em>] in <em class="replaceable">array_name</em>) <em class="replaceable">statement</em></pre><div class="para">To illustrate this, consider the following example:</div><div class="example"><a id="simplesimplevfsreadprintifmember">
19 ⁠</a><p class="title"><strong>Example 3.20. vfsreads-stop-on-stapio2.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads 19 ⁠</a><p class="title"><strong>Example 3.20. vfsreads-stop-on-stapio2.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
20 20
21probe vfs.read 21probe vfs.read
diff --git a/SystemTap_Beginners_Guide/arrayops-deleting.html b/SystemTap_Beginners_Guide/arrayops-deleting.html
index 95804d88..d6f46116 100644
--- a/SystemTap_Beginners_Guide/arrayops-deleting.html
+++ b/SystemTap_Beginners_Guide/arrayops-deleting.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.5. Clearing/Deleting Arrays and Array Elements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /><link rel="next" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-foreach.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-conditionals.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-deleting"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.5. Clearing/Deleting Arrays and Array Elements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /><link rel="next" href="arrayops-conditionals.html" title="3.5.6. Using Arrays in Conditional Statements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-foreach.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-conditionals.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-deleting">
3 ⁠</a>3.5.5. Clearing/Deleting Arrays and Array Elements</h3></div></div></div><a id="idm140217040327040" class="indexterm"></a><a id="idm140217034743872" class="indexterm"></a><a id="idm140217037283776" class="indexterm"></a><a id="idm140217037282144" class="indexterm"></a><a id="idm140217036567504" class="indexterm"></a><div class="para">Sometimes, you may need to clear the associated values in array elements, or reset an entire array for re-use in another probe. <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> in <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> allows you to track how the number of VFS reads per process grows over time, but it does not show you the number of VFS reads each process makes per 3-second period.</div><a id="idm140217044973280" class="indexterm"></a><a id="idm140217035701392" class="indexterm"></a><a id="idm140217034555136" class="indexterm"></a><a id="idm140217037802688" class="indexterm"></a><div class="para">To do that, you will need to clear the values accumulated by the array. You can accomplish this using the <code class="command">delete</code> operator to delete elements in an array, or an entire array. Consider the following example:</div><a id="idm140217035743120" class="indexterm"></a><a id="idm140217034453856" class="indexterm"></a><a id="idm140217035794272" class="indexterm"></a><a id="idm140217037127376" class="indexterm"></a><div class="example"><a id="simplevfsreadprintnotcumulative"> 3 ⁠</a>3.5.5. Clearing/Deleting Arrays and Array Elements</h3></div></div></div><a id="idm47006120202512" class="indexterm"></a><a id="idm47006120200880" class="indexterm"></a><a id="idm47006126839024" class="indexterm"></a><a id="idm47006126837392" class="indexterm"></a><a id="idm47006126751376" class="indexterm"></a><div class="para">Sometimes, you may need to clear the associated values in array elements, or reset an entire array for re-use in another probe. <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> in <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> allows you to track how the number of VFS reads per process grows over time, but it does not show you the number of VFS reads each process makes per 3-second period.</div><a id="idm47006123260512" class="indexterm"></a><a id="idm47006130054560" class="indexterm"></a><a id="idm47006130052592" class="indexterm"></a><a id="idm47006129424432" class="indexterm"></a><div class="para">To do that, you will need to clear the values accumulated by the array. You can accomplish this using the <code class="command">delete</code> operator to delete elements in an array, or an entire array. Consider the following example:</div><a id="idm47006126339824" class="indexterm"></a><a id="idm47006120022032" class="indexterm"></a><a id="idm47006120020032" class="indexterm"></a><a id="idm47006118517136" class="indexterm"></a><div class="example"><a id="simplevfsreadprintnotcumulative">
4 ⁠</a><p class="title"><strong>Example 3.18. noncumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads 4 ⁠</a><p class="title"><strong>Example 3.18. noncumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
5probe vfs.read 5probe vfs.read
6{ 6{
@@ -11,7 +11,7 @@ probe timer.s(3)
11 foreach (count in reads) 11 foreach (count in reads)
12 printf("%s : %d \n", count, reads[count]) 12 printf("%s : %d \n", count, reads[count])
13 delete reads 13 delete reads
14}</pre></div></div><div class="para">In <a class="xref" href="arrayops-deleting.html#simplevfsreadprintnotcumulative">Example 3.18, “noncumulative-vfsreads.stp”</a>, the second probe prints the number of VFS reads each process made <span class="emphasis"><em>within the probed 3-second period only</em></span>. The <code class="command">delete reads</code> statement clears the <code class="command">reads</code> array within the probe.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm140217033266496" class="indexterm"></a><a id="idm140217042474784" class="indexterm"></a><a id="idm140217041161744" class="indexterm"></a><a id="idm140217041159696" class="indexterm"></a><div class="para">You can have multiple array operations within the same probe. Using the examples from <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> and <a class="xref" href="arrayops-deleting.html">Section 3.5.5, “Clearing/Deleting Arrays and Array Elements”</a> , you can track the number of VFS reads each process makes per 3-second period <span class="emphasis"><em>and</em></span> tally the cumulative VFS reads of those same processes. Consider the following example:</div><pre class="screen">global reads, totalreads 14}</pre></div></div><div class="para">In <a class="xref" href="arrayops-deleting.html#simplevfsreadprintnotcumulative">Example 3.18, “noncumulative-vfsreads.stp”</a>, the second probe prints the number of VFS reads each process made <span class="emphasis"><em>within the probed 3-second period only</em></span>. The <code class="command">delete reads</code> statement clears the <code class="command">reads</code> array within the probe.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47006118776288" class="indexterm"></a><a id="idm47006118774240" class="indexterm"></a><a id="idm47006118791472" class="indexterm"></a><a id="idm47006118601168" class="indexterm"></a><div class="para">You can have multiple array operations within the same probe. Using the examples from <a class="xref" href="arrayops-foreach.html">Section 3.5.4, “Processing Multiple Elements in an Array”</a> and <a class="xref" href="arrayops-deleting.html">Section 3.5.5, “Clearing/Deleting Arrays and Array Elements”</a> , you can track the number of VFS reads each process makes per 3-second period <span class="emphasis"><em>and</em></span> tally the cumulative VFS reads of those same processes. Consider the following example:</div><pre class="screen">global reads, totalreads
15 15
16probe vfs.read 16probe vfs.read
17{ 17{
diff --git a/SystemTap_Beginners_Guide/arrayops-foreach.html b/SystemTap_Beginners_Guide/arrayops-foreach.html
index e969bb41..06395943 100644
--- a/SystemTap_Beginners_Guide/arrayops-foreach.html
+++ b/SystemTap_Beginners_Guide/arrayops-foreach.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.4. Processing Multiple Elements in an Array</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /><link rel="next" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-increment.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-deleting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-foreach"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.4. Processing Multiple Elements in an Array</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /><link rel="next" href="arrayops-deleting.html" title="3.5.5. Clearing/Deleting Arrays and Array Elements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-increment.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-deleting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-foreach">
3 ⁠</a>3.5.4. Processing Multiple Elements in an Array</h3></div></div></div><a id="idm140217033190064" class="indexterm"></a><a id="idm140217038637456" class="indexterm"></a><a id="idm140217033157728" class="indexterm"></a><a id="idm140217033156096" class="indexterm"></a><a id="idm140217035499056" class="indexterm"></a><a id="idm140217042104320" class="indexterm"></a><div class="para">Once you've collected enough information in an array, you will need to retrieve and process all elements in that array to make it useful. Consider <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a>: the script collects information about how many VFS reads each process performs, but does not specify what to do with it. The obvious means for making <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a> useful is to print the key pairs in the array <code class="command">reads</code>, but how?</div><a id="idm140217035619040" class="indexterm"></a><a id="idm140217040277232" class="indexterm"></a><a id="idm140217036216480" class="indexterm"></a><a id="idm140217034324368" class="indexterm"></a><a id="idm140217036826720" class="indexterm"></a><a id="idm140217038519120" class="indexterm"></a><a id="idm140217035386624" class="indexterm"></a><div class="para">The best way to process all key pairs in an array (as an iteration) is to use the <code class="command">foreach</code> statement. Consider the following example:</div><a id="idm140217044840912" class="indexterm"></a><a id="idm140217034821520" class="indexterm"></a><a id="idm140217042095424" class="indexterm"></a><a id="idm140217042585392" class="indexterm"></a><a id="idm140217038794912" class="indexterm"></a><div class="example"><a id="simplevfsreadprint"> 3 ⁠</a>3.5.4. Processing Multiple Elements in an Array</h3></div></div></div><a id="idm47006127325024" class="indexterm"></a><a id="idm47006127323392" class="indexterm"></a><a id="idm47006120548256" class="indexterm"></a><a id="idm47006120546624" class="indexterm"></a><a id="idm47006118469024" class="indexterm"></a><a id="idm47006118963008" class="indexterm"></a><div class="para">Once you've collected enough information in an array, you will need to retrieve and process all elements in that array to make it useful. Consider <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a>: the script collects information about how many VFS reads each process performs, but does not specify what to do with it. The obvious means for making <a class="xref" href="arrayops-increment.html#simplesimplevfsread">Example 3.16, “vfsreads.stp”</a> useful is to print the key pairs in the array <code class="command">reads</code>, but how?</div><a id="idm47006127342304" class="indexterm"></a><a id="idm47006129788448" class="indexterm"></a><a id="idm47006121749184" class="indexterm"></a><a id="idm47006121747152" class="indexterm"></a><a id="idm47006122671184" class="indexterm"></a><a id="idm47006125850032" class="indexterm"></a><a id="idm47006125848032" class="indexterm"></a><div class="para">The best way to process all key pairs in an array (as an iteration) is to use the <code class="command">foreach</code> statement. Consider the following example:</div><a id="idm47006121719120" class="indexterm"></a><a id="idm47006121717120" class="indexterm"></a><a id="idm47006118419200" class="indexterm"></a><a id="idm47006129870544" class="indexterm"></a><a id="idm47006120750992" class="indexterm"></a><div class="example"><a id="simplevfsreadprint">
4 ⁠</a><p class="title"><strong>Example 3.17. cumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads 4 ⁠</a><p class="title"><strong>Example 3.17. cumulative-vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">global reads
5probe vfs.read 5probe vfs.read
6{ 6{
@@ -10,7 +10,7 @@ probe timer.s(3)
10{ 10{
11 foreach (count in reads) 11 foreach (count in reads)
12 printf("%s : %d \n", count, reads[count]) 12 printf("%s : %d \n", count, reads[count])
13}</pre></div></div><div class="para">In the second probe of <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the <code class="command">foreach</code> statement uses the variable <code class="command">count</code> to reference each iteration of a unique key in the array <code class="command">reads</code>. The <code class="command">reads[count]</code> array statement in the same probe retrieves the associated value of each unique key.</div><div class="para">Given what we know about the first probe in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the script prints VFS-read statistics every 3 seconds, displaying names of processes that performed a VFS-read along with a corresponding VFS-read count.</div><a id="idm140217044857456" class="indexterm"></a><a id="idm140217038406064" class="indexterm"></a><a id="idm140217042101952" class="indexterm"></a><a id="idm140217040262112" class="indexterm"></a><a id="idm140217036693440" class="indexterm"></a><a id="idm140217035493936" class="indexterm"></a><a id="idm140217041801088" class="indexterm"></a><a id="idm140217037423536" class="indexterm"></a><div class="para">Now, remember that the <code class="command">foreach</code> statement in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> prints <span class="emphasis"><em>all</em></span> iterations of process names in the array, and in no particular order. You can instruct the script to process the iterations in a particular order by using <code class="command">+</code> (ascending) or <code class="command">-</code> (descending). In addition, you can also limit the number of iterations the script needs to process with the <code class="command">limit <em class="replaceable">value</em></code> option.</div><div class="para">For example, consider the following replacement probe:</div><pre class="screen">probe timer.s(3) 13}</pre></div></div><div class="para">In the second probe of <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the <code class="command">foreach</code> statement uses the variable <code class="command">count</code> to reference each iteration of a unique key in the array <code class="command">reads</code>. The <code class="command">reads[count]</code> array statement in the same probe retrieves the associated value of each unique key.</div><div class="para">Given what we know about the first probe in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a>, the script prints VFS-read statistics every 3 seconds, displaying names of processes that performed a VFS-read along with a corresponding VFS-read count.</div><a id="idm47006126325136" class="indexterm"></a><a id="idm47006126323136" class="indexterm"></a><a id="idm47006120014320" class="indexterm"></a><a id="idm47006123144208" class="indexterm"></a><a id="idm47006117513120" class="indexterm"></a><a id="idm47006117511072" class="indexterm"></a><a id="idm47006129702720" class="indexterm"></a><a id="idm47006121779792" class="indexterm"></a><div class="para">Now, remember that the <code class="command">foreach</code> statement in <a class="xref" href="arrayops-foreach.html#simplevfsreadprint">Example 3.17, “cumulative-vfsreads.stp”</a> prints <span class="emphasis"><em>all</em></span> iterations of process names in the array, and in no particular order. You can instruct the script to process the iterations in a particular order by using <code class="command">+</code> (ascending) or <code class="command">-</code> (descending). In addition, you can also limit the number of iterations the script needs to process with the <code class="command">limit <em class="replaceable">value</em></code> option.</div><div class="para">For example, consider the following replacement probe:</div><pre class="screen">probe timer.s(3)
14{ 14{
15 foreach (count in reads- limit 10) 15 foreach (count in reads- limit 10)
16 printf("%s : %d \n", count, reads[count]) 16 printf("%s : %d \n", count, reads[count])
diff --git a/SystemTap_Beginners_Guide/arrayops-increment.html b/SystemTap_Beginners_Guide/arrayops-increment.html
index 3989aebe..8d4e8655 100644
--- a/SystemTap_Beginners_Guide/arrayops-increment.html
+++ b/SystemTap_Beginners_Guide/arrayops-increment.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.3. Incrementing Associated Values</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /><link rel="next" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-readvalues.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-foreach.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-increment"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.3. Incrementing Associated Values</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayops-readvalues.html" title="3.5.2. Reading Values From Arrays" /><link rel="next" href="arrayops-foreach.html" title="3.5.4. Processing Multiple Elements in an Array" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-readvalues.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-foreach.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-increment">
3 ⁠</a>3.5.3. Incrementing Associated Values</h3></div></div></div><a id="idm140217042456976" class="indexterm"></a><a id="idm140217037896272" class="indexterm"></a><a id="idm140217033159168" class="indexterm"></a><div class="para">Use <code class="command">++</code> to increment the associated value of a unique key in an array, as in:</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] ++</pre><div class="para">Again, you can also use a handler function for your <code class="command"><em class="replaceable">index_expression</em></code>. For example, if you wanted to tally how many times a specific process performed a read to the virtual file system (using the event <code class="command">vfs.read</code>), you can use the following probe:</div><a id="idm140217035540496" class="indexterm"></a><a id="idm140217045257232" class="indexterm"></a><a id="idm140217036246976" class="indexterm"></a><a id="idm140217035591008" class="indexterm"></a><a id="idm140217044846352" class="indexterm"></a><div class="example"><a id="simplesimplevfsread"> 3 ⁠</a>3.5.3. Incrementing Associated Values</h3></div></div></div><a id="idm47006118623968" class="indexterm"></a><a id="idm47006120742448" class="indexterm"></a><a id="idm47006120740816" class="indexterm"></a><div class="para">Use <code class="command">++</code> to increment the associated value of a unique key in an array, as in:</div><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>] ++</pre><div class="para">Again, you can also use a handler function for your <code class="command"><em class="replaceable">index_expression</em></code>. For example, if you wanted to tally how many times a specific process performed a read to the virtual file system (using the event <code class="command">vfs.read</code>), you can use the following probe:</div><a id="idm47006130072896" class="indexterm"></a><a id="idm47006124069136" class="indexterm"></a><a id="idm47006124067088" class="indexterm"></a><a id="idm47006125955520" class="indexterm"></a><a id="idm47006123851200" class="indexterm"></a><div class="example"><a id="simplesimplevfsread">
4 ⁠</a><p class="title"><strong>Example 3.16. vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">probe vfs.read 4 ⁠</a><p class="title"><strong>Example 3.16. vfsreads.stp</strong></p><div class="example-contents"><pre class="programlisting">probe vfs.read
5{ 5{
6 reads[execname()] ++ 6 reads[execname()] ++
diff --git a/SystemTap_Beginners_Guide/arrayops-readvalues.html b/SystemTap_Beginners_Guide/arrayops-readvalues.html
index ada60e09..8ee359e3 100644
--- a/SystemTap_Beginners_Guide/arrayops-readvalues.html
+++ b/SystemTap_Beginners_Guide/arrayops-readvalues.html
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.2. Reading Values From Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="next" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayoperators.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-increment.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-readvalues"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.5.2. Reading Values From Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="prev" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /><link rel="next" href="arrayops-increment.html" title="3.5.3. Incrementing Associated Values" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayoperators.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayops-increment.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="arrayops-readvalues">
3 ⁠</a>3.5.2. Reading Values From Arrays</h3></div></div></div><a id="idm140217034365888" class="indexterm"></a><a id="idm140217040467872" class="indexterm"></a><a id="idm140217043389456" class="indexterm"></a><div class="para">You can also read values from an array the same way you would read the value of a variable. 3 ⁠</a>3.5.2. Reading Values From Arrays</h3></div></div></div><a id="idm47006123209296" class="indexterm"></a><a id="idm47006129721344" class="indexterm"></a><a id="idm47006120551088" class="indexterm"></a><div class="para">You can also read values from an array the same way you would read the value of a variable.
4 To do so, include the 4 To do so, include the
5 <code class="command"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</code> 5 <code class="command"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</code>
6 statement as an element in a mathematical expression. For example:</div><a id="idm140217035585856" class="indexterm"></a><a id="idm140217043324912" class="indexterm"></a><a id="idm140217035615376" class="indexterm"></a><a id="idm140217039613712" class="indexterm"></a><a id="idm140217039332640" class="indexterm"></a><a id="idm140217038707376" class="indexterm"></a><a id="idm140217038335696" class="indexterm"></a><a id="idm140217040245344" class="indexterm"></a><a id="idm140217040324720" class="indexterm"></a><a id="idm140217034475520" class="indexterm"></a><div class="example"><a id="arrayreadingvaluesfrom"> 6 statement as an element in a mathematical expression. For example:</div><a id="idm47006124478400" class="indexterm"></a><a id="idm47006119961840" class="indexterm"></a><a id="idm47006119339456" class="indexterm"></a><a id="idm47006129894288" class="indexterm"></a><a id="idm47006124884560" class="indexterm"></a><a id="idm47006120432256" class="indexterm"></a><a id="idm47006120430368" class="indexterm"></a><a id="idm47006121187200" class="indexterm"></a><a id="idm47006118573584" class="indexterm"></a><a id="idm47006128036112" class="indexterm"></a><div class="example"><a id="arrayreadingvaluesfrom">
7 ⁠</a><p class="title"><strong>Example 3.15. Using Array Values in Simple Computations</strong></p><div class="example-contents"><pre class="screen">delta = gettimeofday_s() - foo[tid()]</pre></div></div><div class="para"> 7 ⁠</a><p class="title"><strong>Example 3.15. Using Array Values in Simple Computations</strong></p><div class="example-contents"><pre class="screen">delta = gettimeofday_s() - foo[tid()]</pre></div></div><div class="para">
8 This example assumes that the array <code class="command">foo</code> was built using the construct in 8 This example assumes that the array <code class="command">foo</code> was built using the construct in
9 <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a> (from <a class="xref" href="arrayoperators.html#arrayops-assignvalue">Section 3.5.1, “Assigning an Associated Value”</a>). This 9 <a class="xref" href="arrayoperators.html#arrays-timestampprocessname">Example 3.14, “Associating Timestamps to Process Names”</a> (from <a class="xref" href="arrayoperators.html#arrayops-assignvalue">Section 3.5.1, “Assigning an Associated Value”</a>). This
@@ -16,7 +16,7 @@
16 <span class="emphasis"><em>reading</em></span> the value of <code class="literal">tid()</code> from the array. This particular 16 <span class="emphasis"><em>reading</em></span> the value of <code class="literal">tid()</code> from the array. This particular
17 construct is useful for determining the time between two events, such as the start and completion 17 construct is useful for determining the time between two events, such as the start and completion
18 of a read operation. 18 of a read operation.
19</div><a id="idm140217036770880" class="indexterm"></a><a id="idm140217036467360" class="indexterm"></a><a id="idm140217036245232" class="indexterm"></a><a id="idm140217043314336" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para"> 19</div><a id="idm47006128690944" class="indexterm"></a><a id="idm47006122826448" class="indexterm"></a><a id="idm47006130101024" class="indexterm"></a><a id="idm47006123996368" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
20 If the <code class="command"><em class="replaceable">index_expression</em></code> cannot 20 If the <code class="command"><em class="replaceable">index_expression</em></code> cannot
21 find the unique key, it returns a value of 0 (for numerical operations, such as 21 find the unique key, it returns a value of 0 (for numerical operations, such as
22 <a class="xref" href="arrayops-readvalues.html#arrayreadingvaluesfrom">Example 3.15, “Using Array Values in Simple Computations”</a>) or a null/empty string value (for string operations) by 22 <a class="xref" href="arrayops-readvalues.html#arrayreadingvaluesfrom">Example 3.15, “Using Array Values in Simple Computations”</a>) or a null/empty string value (for string operations) by
diff --git a/SystemTap_Beginners_Guide/associativearrays.html b/SystemTap_Beginners_Guide/associativearrays.html
index 23ca6cb2..1b940cfa 100644
--- a/SystemTap_Beginners_Guide/associativearrays.html
+++ b/SystemTap_Beginners_Guide/associativearrays.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.4. Associative Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /><link rel="next" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="commandlineargssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayoperators.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="associativearrays"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.4. Associative Arrays</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /><link rel="next" href="arrayoperators.html" title="3.5. Array Operations in SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="commandlineargssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="arrayoperators.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="associativearrays">
3 ⁠</a>3.4. Associative Arrays</h2></div></div></div><a id="idm140217045284496" class="indexterm"></a><a id="idm140217034300832" class="indexterm"></a><div class="para">SystemTap also supports the use of associative arrays. While an ordinary variable represents a single value, associative arrays can represent a collection of values. Simply put, an associative array is a collection of unique keys; each key in the array has a value associated with it.</div><a id="idm140217042459200" class="indexterm"></a><a id="idm140217033127744" class="indexterm"></a><a id="idm140217044876784" class="indexterm"></a><a id="idm140217039499552" class="indexterm"></a><a id="idm140217036319168" class="indexterm"></a><a id="idm140217044839008" class="indexterm"></a><a id="idm140217039006112" class="indexterm"></a><a id="idm140217038419648" class="indexterm"></a><div class="para">Since associative arrays are normally processed in multiple probes (as we will demonstrate later), they should be declared as <code class="command">global</code> variables in the SystemTap script. The syntax for accessing an element in an associative array is similar to that of <code class="command">awk</code>, and is as follows:</div><a id="idm140217038484976" class="indexterm"></a><a id="idm140217034377104" class="indexterm"></a><a id="idm140217045036512" class="indexterm"></a><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</pre><div class="para">Here, the <code class="command"><em class="replaceable">array_name</em></code> is any arbitrary name the array uses. The <code class="command"><em class="replaceable">index_expression</em></code> is used to refer to a specific unique key in the array. To illustrate, let us try to build an array named <code class="command">foo</code> that specifies the ages of three people <code class="command">tom</code>, <code class="command">dick</code>, and <code class="command">harry</code> (which are unique keys). To assign them the ages (associated values) of 23, 24, and 25 respectively, we'd use the following array statements:</div><a id="idm140217040371200" class="indexterm"></a><a id="idm140217033264224" class="indexterm"></a><div class="example"><a id="arraysimplestexample"> 3 ⁠</a>3.4. Associative Arrays</h2></div></div></div><a id="idm47006121781792" class="indexterm"></a><a id="idm47006121780176" class="indexterm"></a><div class="para">SystemTap also supports the use of associative arrays. While an ordinary variable represents a single value, associative arrays can represent a collection of values. Simply put, an associative array is a collection of unique keys; each key in the array has a value associated with it.</div><a id="idm47006124229904" class="indexterm"></a><a id="idm47006124236720" class="indexterm"></a><a id="idm47006124660912" class="indexterm"></a><a id="idm47006127425264" class="indexterm"></a><a id="idm47006121785216" class="indexterm"></a><a id="idm47006122726400" class="indexterm"></a><a id="idm47006118484560" class="indexterm"></a><a id="idm47006120723472" class="indexterm"></a><div class="para">Since associative arrays are normally processed in multiple probes (as we will demonstrate later), they should be declared as <code class="command">global</code> variables in the SystemTap script. The syntax for accessing an element in an associative array is similar to that of <code class="command">awk</code>, and is as follows:</div><a id="idm47006129915520" class="indexterm"></a><a id="idm47006121259664" class="indexterm"></a><a id="idm47006119435248" class="indexterm"></a><pre class="screen"><em class="replaceable">array_name</em>[<em class="replaceable">index_expression</em>]</pre><div class="para">Here, the <code class="command"><em class="replaceable">array_name</em></code> is any arbitrary name the array uses. The <code class="command"><em class="replaceable">index_expression</em></code> is used to refer to a specific unique key in the array. To illustrate, let us try to build an array named <code class="command">foo</code> that specifies the ages of three people <code class="command">tom</code>, <code class="command">dick</code>, and <code class="command">harry</code> (which are unique keys). To assign them the ages (associated values) of 23, 24, and 25 respectively, we'd use the following array statements:</div><a id="idm47006123689312" class="indexterm"></a><a id="idm47006122850272" class="indexterm"></a><div class="example"><a id="arraysimplestexample">
4 ⁠</a><p class="title"><strong>Example 3.13. Basic Array Statements</strong></p><div class="example-contents"><pre class="screen">foo["tom"] = 23 4 ⁠</a><p class="title"><strong>Example 3.13. Basic Array Statements</strong></p><div class="example-contents"><pre class="screen">foo["tom"] = 23
5foo["dick"] = 24 5foo["dick"] = 24
6foo["harry"] = 25</pre></div></div><div class="para">You can specify up to nine index expressions in an array statement, each one delimited by a comma (<code class="command">,</code>). This is useful if you wish to have a key that contains multiple pieces of information. The following line from <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> uses 5 elements for the key: process ID, executable name, user ID, parent process ID, and string "W". It associates the value of <code class="command">devname</code> with that key.</div><pre class="screen">device[pid(),execname(),uid(),ppid(),"W"] = devname</pre><div xmlns:d="http://docbook.org/ns/docbook" class="important"><div class="admonition_header"><p><strong>Important</strong></p></div><div class="admonition"><div class="para">All associate arrays must be declared as <code class="command">global</code>, regardless of whether the associate array is used in one or multiple probes. </div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="commandlineargssect.html"><strong>Prev</strong>3.3.4. Command-Line Arguments</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="arrayoperators.html"><strong>Next</strong>3.5. Array Operations in SystemTap</a></li></ul></body></html> \ No newline at end of file 6foo["harry"] = 25</pre></div></div><div class="para">You can specify up to nine index expressions in an array statement, each one delimited by a comma (<code class="command">,</code>). This is useful if you wish to have a key that contains multiple pieces of information. The following line from <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> uses 5 elements for the key: process ID, executable name, user ID, parent process ID, and string "W". It associates the value of <code class="command">devname</code> with that key.</div><pre class="screen">device[pid(),execname(),uid(),ppid(),"W"] = devname</pre><div xmlns:d="http://docbook.org/ns/docbook" class="important"><div class="admonition_header"><p><strong>Important</strong></p></div><div class="admonition"><div class="para">All associate arrays must be declared as <code class="command">global</code>, regardless of whether the associate array is used in one or multiple probes. </div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="commandlineargssect.html"><strong>Prev</strong>3.3.4. Command-Line Arguments</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="arrayoperators.html"><strong>Next</strong>3.5. Array Operations in SystemTap</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/commandlineargssect.html b/SystemTap_Beginners_Guide/commandlineargssect.html
index e4e42538..bed91a97 100644
--- a/SystemTap_Beginners_Guide/commandlineargssect.html
+++ b/SystemTap_Beginners_Guide/commandlineargssect.html
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.4. Command-Line Arguments</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /><link rel="next" href="associativearrays.html" title="3.4. Associative Arrays" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="commandlineargssect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.4. Command-Line Arguments</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /><link rel="next" href="associativearrays.html" title="3.4. Associative Arrays" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="commandlineargssect">
3 ⁠</a>3.3.4. Command-Line Arguments</h3></div></div></div><a id="idm140217036695968" class="indexterm"></a><a id="idm140217037614544" class="indexterm"></a><a id="idm140217037482032" class="indexterm"></a><div class="para">A SystemTap script can also accept simple command-line arguments using a <code class="command">$</code> or <code class="command">@</code> immediately 3 ⁠</a>3.3.4. Command-Line Arguments</h3></div></div></div><a id="idm47006118975824" class="indexterm"></a><a id="idm47006125338096" class="indexterm"></a><a id="idm47006121206160" class="indexterm"></a><div class="para">A SystemTap script can also accept simple command-line arguments using a <code class="command">$</code> or <code class="command">@</code> immediately
4followed by the number of the argument on the command line. Use <code class="command">$</code> if you are expecting the user to enter an integer as a command-line argument, and <code class="command">@</code> if you are expecting a string. 4followed by the number of the argument on the command line. Use <code class="command">$</code> if you are expecting the user to enter an integer as a command-line argument, and <code class="command">@</code> if you are expecting a string.
5</div><div class="example"><a id="commandlineargs"> 5</div><div class="example"><a id="commandlineargs">
6 ⁠</a><p class="title"><strong>Example 3.12. commandlineargs.stp</strong></p><div class="example-contents"><pre class="programlisting">probe kernel.function(@1) { } 6 ⁠</a><p class="title"><strong>Example 3.12. commandlineargs.stp</strong></p><div class="example-contents"><pre class="programlisting">probe kernel.function(@1) { }
7probe kernel.function(@1).return { }</pre></div></div><div class="para"><a class="xref" href="commandlineargssect.html#commandlineargs">Example 3.12, “commandlineargs.stp”</a> is similar to <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>, except that it allows you to pass the kernel function to be probed as a command-line argument (as in <code class="command">stap commandlineargs.stp <em class="replaceable">kernel function</em></code>). You can also specify the script to accept multiple command-line arguments, noting them as <code class="command">@1</code>, <code class="command">@2</code>, and so on, in the order they are entered by the user.</div><a id="idm140217038541232" class="indexterm"></a><a id="idm140217038058032" class="indexterm"></a><a id="idm140217036228976" class="indexterm"></a></div><ul class="docnav"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong>3.3.3. Conditional Statements</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong>3.4. Associative Arrays</a></li></ul></body></html> \ No newline at end of file 7probe kernel.function(@1).return { }</pre></div></div><div class="para"><a class="xref" href="commandlineargssect.html#commandlineargs">Example 3.12, “commandlineargs.stp”</a> is similar to <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>, except that it allows you to pass the kernel function to be probed as a command-line argument (as in <code class="command">stap commandlineargs.stp <em class="replaceable">kernel function</em></code>). You can also specify the script to accept multiple command-line arguments, noting them as <code class="command">@1</code>, <code class="command">@2</code>, and so on, in the order they are entered by the user.</div><a id="idm47006127411968" class="indexterm"></a><a id="idm47006120076496" class="indexterm"></a><a id="idm47006118397600" class="indexterm"></a></div><ul class="docnav"><li class="previous"><a accesskey="p" href="handlerconditionalstatements.html"><strong>Prev</strong>3.3.3. Conditional Statements</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="associativearrays.html"><strong>Next</strong>3.4. Associative Arrays</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/cross-compiling.html b/SystemTap_Beginners_Guide/cross-compiling.html
index 91243c09..7060015e 100644
--- a/SystemTap_Beginners_Guide/cross-compiling.html
+++ b/SystemTap_Beginners_Guide/cross-compiling.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.2. Generating Instrumentation for Other Computers</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="next" href="using-usage.html" title="2.3. Running SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-systemtap.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-usage.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="cross-compiling"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.2. Generating Instrumentation for Other Computers</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="next" href="using-usage.html" title="2.3. Running SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-systemtap.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-usage.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="cross-compiling">
3 ⁠</a>2.2. Generating Instrumentation for Other Computers</h2></div></div></div><a id="idm140217039532192" class="indexterm"></a><a id="idm140217034380592" class="indexterm"></a><a id="idm140217034701872" class="indexterm"></a><a id="idm140217039505984" class="indexterm"></a><a id="idm140217034245488" class="indexterm"></a><a id="idm140217039180768" class="indexterm"></a><a id="idm140217038382720" class="indexterm"></a><a id="idm140217037009216" class="indexterm"></a><div class="para"> 3 ⁠</a>2.2. Generating Instrumentation for Other Computers</h2></div></div></div><a id="idm47006123618640" class="indexterm"></a><a id="idm47006118670464" class="indexterm"></a><a id="idm47006119400016" class="indexterm"></a><a id="idm47006120065392" class="indexterm"></a><a id="idm47006122747024" class="indexterm"></a><a id="idm47006123558544" class="indexterm"></a><a id="idm47006128880240" class="indexterm"></a><a id="idm47006123352640" class="indexterm"></a><div class="para">
4 When users run a SystemTap script, SystemTap builds a kernel module out of 4 When users run a SystemTap script, SystemTap builds a kernel module out of
5 that script. SystemTap then loads the module into the kernel, allowing it to 5 that script. SystemTap then loads the module into the kernel, allowing it to
6 extract the specified data directly from the kernel (refer to 6 extract the specified data directly from the kernel (refer to
@@ -10,7 +10,7 @@
10 Normally, however, SystemTap scripts can only be run on systems where SystemTap is deployed (as in <a class="xref" href="using-systemtap.html#using-setup">Section 2.1, “Installation and Setup”</a>). This could mean that if you want to run SystemTap on ten systems, you would need to deploy SystemTap on <span class="emphasis"><em>all</em></span> those systems. In some cases, this may be neither feasible nor desired. For instance, corporate policy may prohibit an administrator from installing RPM packages that provide compilers or debug information on specific machines, and thus prevent the deployment of SystemTap. To work around this problem, SystemTap allows you to use <em class="firstterm">cross-instrumentation</em>. 10 Normally, however, SystemTap scripts can only be run on systems where SystemTap is deployed (as in <a class="xref" href="using-systemtap.html#using-setup">Section 2.1, “Installation and Setup”</a>). This could mean that if you want to run SystemTap on ten systems, you would need to deploy SystemTap on <span class="emphasis"><em>all</em></span> those systems. In some cases, this may be neither feasible nor desired. For instance, corporate policy may prohibit an administrator from installing RPM packages that provide compilers or debug information on specific machines, and thus prevent the deployment of SystemTap. To work around this problem, SystemTap allows you to use <em class="firstterm">cross-instrumentation</em>.
11 </div><div class="para"> 11 </div><div class="para">
12 Cross-instrumentation is the process of generating SystemTap instrumentation module from a SystemTap script on one computer to be used on another computer. This process offers the following benefits: 12 Cross-instrumentation is the process of generating SystemTap instrumentation module from a SystemTap script on one computer to be used on another computer. This process offers the following benefits:
13 </div><a id="idm140217043019200" class="indexterm"></a><a id="idm140217040542288" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"> 13 </div><a id="idm47006129195760" class="indexterm"></a><a id="idm47006129078672" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
14 The kernel information packages for various machines can be installed on a single <span class="emphasis"><em>host machine</em></span>. 14 The kernel information packages for various machines can be installed on a single <span class="emphasis"><em>host machine</em></span>.
15 </div></li><li class="listitem"><div class="para"> 15 </div></li><li class="listitem"><div class="para">
16 Each <span class="emphasis"><em>target machine</em></span> only needs one RPM package to be installed in order to use the generated SystemTap instrumentation module: the <span class="package">systemtap-runtime</span> package. 16 Each <span class="emphasis"><em>target machine</em></span> only needs one RPM package to be installed in order to use the generated SystemTap instrumentation module: the <span class="package">systemtap-runtime</span> package.
@@ -18,9 +18,9 @@
18 For the sake of simplicity, the following terms are used 18 For the sake of simplicity, the following terms are used
19 throughout this section: 19 throughout this section:
20 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"> 20 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
21<a id="idm140217035849312" class="indexterm"></a> 21<a id="idm47006123341328" class="indexterm"></a>
22 22
23<a id="idm140217034622096" class="indexterm"></a> 23<a id="idm47006123101312" class="indexterm"></a>
24 <span class="emphasis"><em>Instrumentation module</em></span> — the 24 <span class="emphasis"><em>Instrumentation module</em></span> — the
25 kernel module built from a SystemTap script. The 25 kernel module built from a SystemTap script. The
26 <span class="emphasis"><em>SystemTap module</em></span> is built on the <span class="emphasis"><em>host 26 <span class="emphasis"><em>SystemTap module</em></span> is built on the <span class="emphasis"><em>host
@@ -28,25 +28,25 @@
28 kernel</em></span> of <span class="emphasis"><em>target 28 kernel</em></span> of <span class="emphasis"><em>target
29 system</em></span>. 29 system</em></span>.
30 </div></li><li class="listitem"><div class="para"> 30 </div></li><li class="listitem"><div class="para">
31<a id="idm140217039265488" class="indexterm"></a> 31<a id="idm47006123618352" class="indexterm"></a>
32 32
33<a id="idm140217039925040" class="indexterm"></a> 33<a id="idm47006123979584" class="indexterm"></a>
34 <span class="emphasis"><em>Host system</em></span> — the system on 34 <span class="emphasis"><em>Host system</em></span> — the system on
35 which you compile the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap 35 which you compile the <span class="emphasis"><em>instrumentation modules</em></span> from SystemTap
36 scripts in order to load them on <span class="emphasis"><em>target 36 scripts in order to load them on <span class="emphasis"><em>target
37 systems</em></span>. 37 systems</em></span>.
38 </div></li><li class="listitem"><div class="para"> 38 </div></li><li class="listitem"><div class="para">
39<a id="idm140217034687872" class="indexterm"></a> 39<a id="idm47006122720928" class="indexterm"></a>
40 40
41<a id="idm140217040032704" class="indexterm"></a> 41<a id="idm47006120265056" class="indexterm"></a>
42 42
43 <span class="emphasis"><em>Target system</em></span> — the system for which you 43 <span class="emphasis"><em>Target system</em></span> — the system for which you
44 are building the <span class="emphasis"><em>instrumentation modules</em></span> from 44 are building the <span class="emphasis"><em>instrumentation modules</em></span> from
45 SystemTap scripts. 45 SystemTap scripts.
46 </div></li><li class="listitem"><div class="para"> 46 </div></li><li class="listitem"><div class="para">
47<a id="idm140217039912288" class="indexterm"></a> 47<a id="idm47006130033904" class="indexterm"></a>
48 48
49<a id="idm140217039311696" class="indexterm"></a> 49<a id="idm47006129738800" class="indexterm"></a>
50 <span class="emphasis"><em>Target kernel</em></span> — the kernel of 50 <span class="emphasis"><em>Target kernel</em></span> — the kernel of
51 the <span class="emphasis"><em>target system</em></span>. This is the kernel on which 51 the <span class="emphasis"><em>target system</em></span>. This is the kernel on which
52 you intend to load or run the <span class="emphasis"><em>instrumentation 52 you intend to load or run the <span class="emphasis"><em>instrumentation
@@ -54,7 +54,7 @@
54 </div></li></ul></div><div class="para"> 54 </div></li></ul></div><div class="para">
55 To configure a host system and target systems, complete the following steps: 55 To configure a host system and target systems, complete the following steps:
56 </div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="preppingxcompile"> 56 </div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="preppingxcompile">
57 ⁠</a><a id="idm140217034201488" class="indexterm"></a><a id="idm140217037068864" class="indexterm"></a><a id="idm140217043192048" class="indexterm"></a><ol class="1"><li class="step"><div class="para"> 57 ⁠</a><a id="idm47006120238640" class="indexterm"></a><a id="idm47006118359200" class="indexterm"></a><a id="idm47006123616688" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
58 Install the <span class="package">systemtap-runtime</span> package on each 58 Install the <span class="package">systemtap-runtime</span> package on each
59 <span class="emphasis"><em>target system</em></span>. 59 <span class="emphasis"><em>target system</em></span>.
60 </div></li><li class="step"><div class="para"> 60 </div></li><li class="step"><div class="para">
@@ -90,7 +90,7 @@
90 be converted into the <span class="emphasis"><em>instrumentation module</em></span>, and 90 be converted into the <span class="emphasis"><em>instrumentation module</em></span>, and
91 <em class="replaceable">module_name</em> is the desired 91 <em class="replaceable">module_name</em> is the desired
92 name of the <span class="emphasis"><em>instrumentation module</em></span>. 92 name of the <span class="emphasis"><em>instrumentation module</em></span>.
93 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm140217037866528" class="indexterm"></a><a id="idm140217038773616" class="indexterm"></a><a id="idm140217034413120" class="indexterm"></a><div class="para"> 93 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47006127446512" class="indexterm"></a><a id="idm47006124724048" class="indexterm"></a><a id="idm47006129791248" class="indexterm"></a><div class="para">
94 To determine the architecture notation of a running kernel, you can run the following command: 94 To determine the architecture notation of a running kernel, you can run the following command:
95 </div><pre class="screen"><code class="command">uname -m</code></pre></div></div><div class="para"> 95 </div><pre class="screen"><code class="command">uname -m</code></pre></div></div><div class="para">
96 Once the <span class="emphasis"><em>instrumentation module</em></span> is compiled, copy 96 Once the <span class="emphasis"><em>instrumentation module</em></span> is compiled, copy
diff --git a/SystemTap_Beginners_Guide/errors.html b/SystemTap_Beginners_Guide/errors.html
index 8d66b0b8..615ca3ba 100644
--- a/SystemTap_Beginners_Guide/errors.html
+++ b/SystemTap_Beginners_Guide/errors.html
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 6. Understanding SystemTap Errors</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="futexcontentionsect.html" title="5.4. Identifying Contended User-Space Locks" /><link rel="next" href="runtimeerror.html" title="6.2. Runtime Errors and Warnings" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="futexcontentionsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="runtimeerror.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="errors"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 6. Understanding SystemTap Errors</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="futexcontentionsect.html" title="5.4. Identifying Contended User-Space Locks" /><link rel="next" href="runtimeerror.html" title="6.2. Runtime Errors and Warnings" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="futexcontentionsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="runtimeerror.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="errors">
3 ⁠</a>Chapter 6. Understanding SystemTap Errors</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></div><div class="para">This chapter explains the most common errors you may encounter while using SystemTap.</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="parsetype"> 3 ⁠</a>Chapter 6. Understanding SystemTap Errors</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></div><div class="para">This chapter explains the most common errors you may encounter while using SystemTap.</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="parsetype">
4 ⁠</a>6.1. Parse and Semantic Errors</h2></div></div></div><a id="idm140217040610368" class="indexterm"></a><a id="idm140217045022272" class="indexterm"></a><a id="idm140217044036816" class="indexterm"></a><div class="para">Parse and semantic errors occur while SystemTap attempts to parse and 4 ⁠</a>6.1. Parse and Semantic Errors</h2></div></div></div><a id="idm47006125600368" class="indexterm"></a><a id="idm47006127960896" class="indexterm"></a><a id="idm47006123671488" class="indexterm"></a><div class="para">Parse and semantic errors occur while SystemTap attempts to parse and
5 translate the script into C, before converting it into a kernel 5 translate the script into C, before converting it into a kernel
6 module. For example, type errors result from operations that assign invalid 6 module. For example, type errors result from operations that assign invalid
7 values to variables or arrays. 7 values to variables or arrays.
8</div><h3><a id="idm140217039557504"> 8</div><h3><a id="idm47006125600720">
9 ⁠</a>parse error: expected <em class="replaceable">foo</em>, saw <em class="replaceable">bar</em></h3><a id="idm140217035668032" class="indexterm"></a><a id="idm140217044647520" class="indexterm"></a><a id="idm140217040601408" class="indexterm"></a><a id="idm140217041560752" class="indexterm"></a><a id="idm140217040059872" class="indexterm"></a><a id="idm140217044419088" class="indexterm"></a><a id="idm140217044417040" class="indexterm"></a><a id="idm140217039123008" class="indexterm"></a><a id="idm140217039120624" class="indexterm"></a><div class="para">The script contains a grammatical or typographical error. SystemTap detected the type of the construct that is incorrect, given the context of the probe. 9 ⁠</a>parse error: expected <em class="replaceable">foo</em>, saw <em class="replaceable">bar</em></h3><a id="idm47006127498400" class="indexterm"></a><a id="idm47006127829440" class="indexterm"></a><a id="idm47006127196896" class="indexterm"></a><a id="idm47006128570848" class="indexterm"></a><a id="idm47006125404976" class="indexterm"></a><a id="idm47006125984688" class="indexterm"></a><a id="idm47006125982608" class="indexterm"></a><a id="idm47006117517008" class="indexterm"></a><a id="idm47006117514624" class="indexterm"></a><div class="para">The script contains a grammatical or typographical error. SystemTap detected the type of the construct that is incorrect, given the context of the probe.
10</div><div class="para"> 10</div><div class="para">
11 For example, the following invalid SystemTap script is missing its probe 11 For example, the following invalid SystemTap script is missing its probe
12 handlers: 12 handlers:
@@ -23,22 +23,22 @@ probe vfs.write
23<pre class="programlisting">parse error: expected one of '. , ( ? ! { = +=' 23<pre class="programlisting">parse error: expected one of '. , ( ? ! { = +='
24 saw: keyword at perror.stp:2:1 24 saw: keyword at perror.stp:2:1
251 parse error(s).</pre> 251 parse error(s).</pre>
26</div><h3><a id="idm140217033154768"> 26</div><h3><a id="idm47006118434976">
27 ⁠</a>parse error: embedded code in unprivileged script</h3><a id="idm140217033153792" class="indexterm"></a><a id="idm140217033151696" class="indexterm"></a><a id="idm140217036684816" class="indexterm"></a><a id="idm140217036682720" class="indexterm"></a><a id="idm140217036680624" class="indexterm"></a><a id="idm140217037003200" class="indexterm"></a><div class="para"> 27 ⁠</a>parse error: embedded code in unprivileged script</h3><a id="idm47006118434000" class="indexterm"></a><a id="idm47006118431904" class="indexterm"></a><a id="idm47006128042400" class="indexterm"></a><a id="idm47006128040304" class="indexterm"></a><a id="idm47006118216320" class="indexterm"></a><a id="idm47006118214224" class="indexterm"></a><div class="para">
28 The script contains unsafe embedded C code, that is, blocks of code 28 The script contains unsafe embedded C code, that is, blocks of code
29 surrounded by <code class="command">%{</code> and <code class="command">%}</code>. SystemTap 29 surrounded by <code class="command">%{</code> and <code class="command">%}</code>. SystemTap
30 allows you to embed C code in a script, which is useful if there are no 30 allows you to embed C code in a script, which is useful if there are no
31 tapsets to suit your purposes. However, embedded C constructs are not 31 tapsets to suit your purposes. However, embedded C constructs are not
32 safe and SystemTap reports this error to warn you if such constructs 32 safe and SystemTap reports this error to warn you if such constructs
33 appear in the script. 33 appear in the script.
34</div><a id="idm140217039554272" class="indexterm"></a><a id="idm140217039552192" class="indexterm"></a><a id="idm140217039550128" class="indexterm"></a><a id="idm140217043697536" class="indexterm"></a><div class="para"> 34</div><a id="idm47006125450784" class="indexterm"></a><a id="idm47006125448704" class="indexterm"></a><a id="idm47006124942544" class="indexterm"></a><a id="idm47006124940464" class="indexterm"></a><div class="para">
35 If you are sure that any similar constructs in the script are safe 35 If you are sure that any similar constructs in the script are safe
36 <span class="emphasis"><em>and</em></span> you 36 <span class="emphasis"><em>and</em></span> you
37 are a member of the <code class="systemitem">stapdev</code> 37 are a member of the <code class="systemitem">stapdev</code>
38 group (or have root privileges), 38 group (or have root privileges),
39 run the script in "guru" mode by using the <code class="option">-g</code> option: 39 run the script in "guru" mode by using the <code class="option">-g</code> option:
40</div><pre class="screen"><code class="command">stap -g <em class="replaceable">script</em></code></pre><h3><a id="idm140217041940064"> 40</div><pre class="screen"><code class="command">stap -g <em class="replaceable">script</em></code></pre><h3><a id="idm47006126979856">
41 ⁠</a>semantic error: type mismatch for identifier '<em class="replaceable">foo</em>' ... string vs. long</h3><a id="idm140217041938640" class="indexterm"></a><a id="idm140217044837424" class="indexterm"></a><a id="idm140217044835344" class="indexterm"></a><a id="idm140217044833248" class="indexterm"></a><a id="idm140217044068176" class="indexterm"></a><div class="para"> 41 ⁠</a>semantic error: type mismatch for identifier '<em class="replaceable">foo</em>' ... string vs. long</h3><a id="idm47006119692720" class="indexterm"></a><a id="idm47006119690656" class="indexterm"></a><a id="idm47006119688576" class="indexterm"></a><a id="idm47006129389696" class="indexterm"></a><a id="idm47006129387600" class="indexterm"></a><div class="para">
42 The function <em class="replaceable">foo</em> in the 42 The function <em class="replaceable">foo</em> in the
43 script used the wrong type 43 script used the wrong type
44 (such as <code class="literal">%s</code> or <code class="literal">%d</code>). 44 (such as <code class="literal">%s</code> or <code class="literal">%d</code>).
@@ -48,40 +48,40 @@ probe vfs.write
48</div><pre class="programlisting">probe syscall.open 48</div><pre class="programlisting">probe syscall.open
49{ 49{
50 printf ("%d(%d) open\n", execname(), pid()) 50 printf ("%d(%d) open\n", execname(), pid())
51}</pre><h3><a id="idm140217040737376"> 51}</pre><h3><a id="idm47006126136352">
52 ⁠</a>semantic error: unresolved type for identifier '<em class="replaceable">foo</em>'</h3><a id="idm140217040735952" class="indexterm"></a><a id="idm140217040597136" class="indexterm"></a><a id="idm140217040595056" class="indexterm"></a><a id="idm140217039932800" class="indexterm"></a><div class="para">The identifier (variable) was used, but no type (integer or 52 ⁠</a>semantic error: unresolved type for identifier '<em class="replaceable">foo</em>'</h3><a id="idm47006126134928" class="indexterm"></a><a id="idm47006126132880" class="indexterm"></a><a id="idm47006127769952" class="indexterm"></a><a id="idm47006127767856" class="indexterm"></a><div class="para">The identifier (variable) was used, but no type (integer or
53 string) could be determined. This occurs, for instance, if you use a 53 string) could be determined. This occurs, for instance, if you use a
54 variable in a <code class="command">printf</code> statement while 54 variable in a <code class="command">printf</code> statement while
55 the script never assigns a value to the variable.</div><h3><a id="idm140217039929440"> 55 the script never assigns a value to the variable.</div><h3><a id="idm47006125065824">
56 ⁠</a>semantic error: Expecting symbol or array index expression</h3><a id="idm140217039928464" class="indexterm"></a><a id="idm140217041649472" class="indexterm"></a><a id="idm140217041647392" class="indexterm"></a><a id="idm140217035568160" class="indexterm"></a><div class="para"> 56 ⁠</a>semantic error: Expecting symbol or array index expression</h3><a id="idm47006125064848" class="indexterm"></a><a id="idm47006125062752" class="indexterm"></a><a id="idm47006125879360" class="indexterm"></a><a id="idm47006125877264" class="indexterm"></a><div class="para">
57 SystemTap could not assign a value to a variable or to a location in an 57 SystemTap could not assign a value to a variable or to a location in an
58 array. The destination for the assignment is not a valid destination. 58 array. The destination for the assignment is not a valid destination.
59 The following example code would generate this error: 59 The following example code would generate this error:
60</div><pre class="programlisting">probe begin { printf("x") = 1 } 60</div><pre class="programlisting">probe begin { printf("x") = 1 }
61</pre><h3><a id="idm140217035564352"> 61</pre><h3><a id="idm47006120281296">
62 ⁠</a>while searching for arity <em class="replaceable">N</em> function, semantic error: unresolved function call</h3><a id="idm140217037181312" class="indexterm"></a><a id="idm140217037179216" class="indexterm"></a><a id="idm140217037177136" class="indexterm"></a><a id="idm140217035460000" class="indexterm"></a><a id="idm140217035457904" class="indexterm"></a><div class="para">A function call or array index expression in the script used an invalid 62 ⁠</a>while searching for arity <em class="replaceable">N</em> function, semantic error: unresolved function call</h3><a id="idm47006120279856" class="indexterm"></a><a id="idm47006127356736" class="indexterm"></a><a id="idm47006127354768" class="indexterm"></a><a id="idm47006127352672" class="indexterm"></a><a id="idm47006123099888" class="indexterm"></a><div class="para">A function call or array index expression in the script used an invalid
63 number of arguments or parameters. In SystemTap, 63 number of arguments or parameters. In SystemTap,
64 <em class="firstterm">arity</em> can either refer to the number of indices 64 <em class="firstterm">arity</em> can either refer to the number of indices
65 for an array, or the number of parameters to a function.</div><h3><a id="idm140217040572272"> 65 for an array, or the number of parameters to a function.</div><h3><a id="idm47006123096704">
66 ⁠</a>semantic error: array locals not supported, missing global declaration?</h3><a id="idm140217040571296" class="indexterm"></a><a id="idm140217040569200" class="indexterm"></a><a id="idm140217044168704" class="indexterm"></a><a id="idm140217044166640" class="indexterm"></a><a id="idm140217044164560" class="indexterm"></a><div class="para">The script used an array operation without declaring the array as 66 ⁠</a>semantic error: array locals not supported, missing global declaration?</h3><a id="idm47006119710128" class="indexterm"></a><a id="idm47006119708032" class="indexterm"></a><a id="idm47006119705952" class="indexterm"></a><a id="idm47006127134368" class="indexterm"></a><a id="idm47006127132288" class="indexterm"></a><div class="para">The script used an array operation without declaring the array as
67 a global variable (global variables can be declared after their use in 67 a global variable (global variables can be declared after their use in
68 SystemTap scripts). Similar messages appear if an array is used, but with inconsistent arities.</div><h3><a id="idm140217040357264"> 68 SystemTap scripts). Similar messages appear if an array is used, but with inconsistent arities.</div><h3><a id="idm47006128302112">
69 ⁠</a>semantic error: variable '<em class="replaceable">foo</em>' modified during 'foreach' iteration</h3><a id="idm140217040355776" class="indexterm"></a><a id="idm140217037406336" class="indexterm"></a><a id="idm140217037404256" class="indexterm"></a><a id="idm140217037402160" class="indexterm"></a><div class="para">The array <em class="replaceable">foo</em> is being modified (being assigned to or deleted from) within an active <code class="command">foreach</code> loop. This error also displays if an operation within the script performs a function call within the <code class="command">foreach</code> loop.</div><h3><a id="idm140217041338704"> 69 ⁠</a>semantic error: variable '<em class="replaceable">foo</em>' modified during 'foreach' iteration</h3><a id="idm47006128300624" class="indexterm"></a><a id="idm47006128298528" class="indexterm"></a><a id="idm47006125486288" class="indexterm"></a><a id="idm47006125484192" class="indexterm"></a><div class="para">The array <em class="replaceable">foo</em> is being modified (being assigned to or deleted from) within an active <code class="command">foreach</code> loop. This error also displays if an operation within the script performs a function call within the <code class="command">foreach</code> loop.</div><h3><a id="idm47006126859152">
70 ⁠</a>semantic error: probe point mismatch at position <em class="replaceable">N</em>, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm140217040414768" class="indexterm"></a><a id="idm140217040412688" class="indexterm"></a><a id="idm140217040410624" class="indexterm"></a><a id="idm140217042306384" class="indexterm"></a><div class="para">SystemTap did not understand what the event or SystemTap function 70 ⁠</a>semantic error: probe point mismatch at position <em class="replaceable">N</em>, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47006126857376" class="indexterm"></a><a id="idm47006123328240" class="indexterm"></a><a id="idm47006123326176" class="indexterm"></a><a id="idm47006127103632" class="indexterm"></a><div class="para">SystemTap did not understand what the event or SystemTap function
71 <em class="replaceable">foo</em> refers 71 <em class="replaceable">foo</em> refers
72 to. This usually means that SystemTap could not find a match for 72 to. This usually means that SystemTap could not find a match for
73 <em class="replaceable">foo</em> in the 73 <em class="replaceable">foo</em> in the
74 tapset library. <em class="replaceable">N</em> refers to the 74 tapset library. <em class="replaceable">N</em> refers to the
75 line and column of 75 line and column of
76 the error.</div><h3><a id="idm140217042302000"> 76 the error.</div><h3><a id="idm47006127099248">
77 ⁠</a>semantic error: no match for probe point, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm140217038538912" class="indexterm"></a><a id="idm140217038536816" class="indexterm"></a><a id="idm140217038534736" class="indexterm"></a><a id="idm140217032806672" class="indexterm"></a><a id="idm140217032804576" class="indexterm"></a><div class="para">SystemTap could not resolve the events or handler function <em class="replaceable">foo</em> for a variety of reasons. This error occurs when the script contains the event <code class="command">kernel.function("<em class="replaceable">something</em>")</code>, and <em class="replaceable">something</em> does not exist. In some cases, the error could also mean the script contains an invalid kernel file name or source line number.</div><h3><a id="idm140217039082112"> 77 ⁠</a>semantic error: no match for probe point, while resolving probe point <em class="replaceable">foo</em></h3><a id="idm47006126222576" class="indexterm"></a><a id="idm47006126220592" class="indexterm"></a><a id="idm47006126218512" class="indexterm"></a><a id="idm47006117231504" class="indexterm"></a><a id="idm47006117229408" class="indexterm"></a><div class="para">SystemTap could not resolve the events or handler function <em class="replaceable">foo</em> for a variety of reasons. This error occurs when the script contains the event <code class="command">kernel.function("<em class="replaceable">something</em>")</code>, and <em class="replaceable">something</em> does not exist. In some cases, the error could also mean the script contains an invalid kernel file name or source line number.</div><h3><a id="idm47006130144704">
78 ⁠</a>semantic error: unresolved target-symbol expression</h3><a id="idm140217039081136" class="indexterm"></a><a id="idm140217045081360" class="indexterm"></a><a id="idm140217045079280" class="indexterm"></a><a id="idm140217045077184" class="indexterm"></a><a id="idm140217035582800" class="indexterm"></a><div class="para">A handler in the script references a target variable, but the 78 ⁠</a>semantic error: unresolved target-symbol expression</h3><a id="idm47006130143728" class="indexterm"></a><a id="idm47006129836064" class="indexterm"></a><a id="idm47006129833984" class="indexterm"></a><a id="idm47006129868304" class="indexterm"></a><a id="idm47006129866208" class="indexterm"></a><div class="para">A handler in the script references a target variable, but the
79 value of the variable could not be resolved. This error could also mean 79 value of the variable could not be resolved. This error could also mean
80 that a handler is referencing a target variable that is not valid 80 that a handler is referencing a target variable that is not valid
81 in the context when it was referenced. This may be a result of compiler 81 in the context when it was referenced. This may be a result of compiler
82 optimization of the generated code.</div><h3><a id="idm140217035579952"> 82 optimization of the generated code.</div><h3><a id="idm47006119797392">
83 ⁠</a>semantic error: libdwfl failure </h3><a id="idm140217035578880" class="indexterm"></a><a id="idm140217043236768" class="indexterm"></a><a id="idm140217043234704" class="indexterm"></a><a id="idm140217039216704" class="indexterm"></a><div class="para">There was a problem processing the debugging information. In most 83 ⁠</a>semantic error: libdwfl failure </h3><a id="idm47006119796352" class="indexterm"></a><a id="idm47006119794272" class="indexterm"></a><a id="idm47006128422000" class="indexterm"></a><a id="idm47006128419920" class="indexterm"></a><div class="para">There was a problem processing the debugging information. In most
84 cases, this error results from the installation of a 84 cases, this error results from the installation of a
85 <span class="package">kernel-debuginfo</span> package whose version does not match 85 <span class="package">kernel-debuginfo</span> package whose version does not match
86 the probed kernel exactly. The installed <span class="package">kernel-debuginfo</span> package itself may have some consistency or correctness problems.</div><h3><a id="idm140217039213232"> 86 the probed kernel exactly. The installed <span class="package">kernel-debuginfo</span> package itself may have some consistency or correctness problems.</div><h3><a id="idm47006124089120">
87 ⁠</a>semantic error: cannot find <em class="replaceable">foo</em> debuginfo</h3><div class="para">SystemTap could not find a suitable <span class="package">kernel-debuginfo</span> package.</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="futexcontentionsect.html"><strong>Prev</strong>5.4. Identifying Contended User-Space Locks</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="runtimeerror.html"><strong>Next</strong>6.2. Runtime Errors and Warnings</a></li></ul></body></html> \ No newline at end of file 87 ⁠</a>semantic error: cannot find <em class="replaceable">foo</em> debuginfo</h3><div class="para">SystemTap could not find a suitable <span class="package">kernel-debuginfo</span> package.</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="futexcontentionsect.html"><strong>Prev</strong>5.4. Identifying Contended User-Space Locks</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="runtimeerror.html"><strong>Next</strong>6.2. Runtime Errors and Warnings</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/futexcontentionsect.html b/SystemTap_Beginners_Guide/futexcontentionsect.html
index ab8475e2..3ca2561d 100644
--- a/SystemTap_Beginners_Guide/futexcontentionsect.html
+++ b/SystemTap_Beginners_Guide/futexcontentionsect.html
@@ -1,15 +1,15 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.4. Identifying Contended User-Space Locks</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /><link rel="next" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="syscallsbyprocpidsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="errors.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="futexcontentionsect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.4. Identifying Contended User-Space Locks</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /><link rel="next" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="syscallsbyprocpidsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="errors.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="futexcontentionsect">
3 ⁠</a>5.4. Identifying Contended User-Space Locks</h2></div></div></div><a id="idm140217035197360" class="indexterm"></a><a id="idm140217034362288" class="indexterm"></a><a id="idm140217038127824" class="indexterm"></a><a id="idm140217036702944" class="indexterm"></a><div class="para">This section describes how to identify contended 3 ⁠</a>5.4. Identifying Contended User-Space Locks</h2></div></div></div><a id="idm47006129398752" class="indexterm"></a><a id="idm47006126772464" class="indexterm"></a><a id="idm47006117179280" class="indexterm"></a><a id="idm47006118348608" class="indexterm"></a><div class="para">This section describes how to identify contended
4user-space locks throughout the system within a specific time 4user-space locks throughout the system within a specific time
5period. The ability to identify contended user-space locks can help 5period. The ability to identify contended user-space locks can help
6you investigate poor program performance that you suspect may be 6you investigate poor program performance that you suspect may be
7caused by <code class="command">futex</code> contentions.</div><a id="idm140217032975536" class="indexterm"></a><a id="idm140217038878896" class="indexterm"></a><a id="idm140217034714208" class="indexterm"></a><a id="idm140217032754144" class="indexterm"></a><a id="idm140217038757344" class="indexterm"></a><div class="para">Simply put, <code class="command">futex</code> contention occurs 7caused by <code class="command">futex</code> contentions.</div><a id="idm47006124663424" class="indexterm"></a><a id="idm47006123574480" class="indexterm"></a><a id="idm47006117554704" class="indexterm"></a><a id="idm47006118988832" class="indexterm"></a><a id="idm47006127720160" class="indexterm"></a><div class="para">Simply put, <code class="command">futex</code> contention occurs
8 when multiple processes are trying to access the same lock 8 when multiple processes are trying to access the same lock
9 variable at the same time. This can result in a poor 9 variable at the same time. This can result in a poor
10 performance because the lock serializes execution; one process obtains 10 performance because the lock serializes execution; one process obtains
11 the lock while the other processes must wait for the lock 11 the lock while the other processes must wait for the lock
12 variable to become available again.</div><a id="idm140217045294896" class="indexterm"></a><a id="idm140217040507184" class="indexterm"></a><a id="idm140217043788320" class="indexterm"></a><div class="para">The <a class="xref" href="futexcontentionsect.html#futexcontention">futexes.stp</a> script probes the <code class="command">futex</code> system call to show lock contention.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">futexes.stp</div> 12 variable to become available again.</div><a id="idm47006118177728" class="indexterm"></a><a id="idm47006130184736" class="indexterm"></a><a id="idm47006125642688" class="indexterm"></a><div class="para">The <a class="xref" href="futexcontentionsect.html#futexcontention">futexes.stp</a> script probes the <code class="command">futex</code> system call to show lock contention.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">futexes.stp</div>
13<pre class="programlisting">#! /usr/bin/env stap 13<pre class="programlisting">#! /usr/bin/env stap
14 14
15# This script tries to identify contended user-space locks by hooking 15# This script tries to identify contended user-space locks by hooking
diff --git a/SystemTap_Beginners_Guide/handlerconditionalstatements.html b/SystemTap_Beginners_Guide/handlerconditionalstatements.html
index 8e36c74e..7df35d95 100644
--- a/SystemTap_Beginners_Guide/handlerconditionalstatements.html
+++ b/SystemTap_Beginners_Guide/handlerconditionalstatements.html
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.3. Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /><link rel="next" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetavailable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="commandlineargssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="handlerconditionalstatements"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.3. Conditional Statements</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /><link rel="next" href="commandlineargssect.html" title="3.3.4. Command-Line Arguments" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetavailable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="commandlineargssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="handlerconditionalstatements">
3 ⁠</a>3.3.3. Conditional Statements</h3></div></div></div><a id="idm140217044140080" class="indexterm"></a><a id="idm140217042149760" class="indexterm"></a><div class="para"> 3 ⁠</a>3.3.3. Conditional Statements</h3></div></div></div><a id="idm47006119048256" class="indexterm"></a><a id="idm47006119913824" class="indexterm"></a><div class="para">
4In some cases, the output of a SystemTap script may be too large. To address this, you need to further refine the script's logic in order to delimit the output into something more relevant or useful to your probe. 4In some cases, the output of a SystemTap script may be too large. To address this, you need to further refine the script's logic in order to delimit the output into something more relevant or useful to your probe.
5</div><div class="para"> 5</div><div class="para">
6Do this by using <span class="emphasis"><em>conditionals</em></span> in handlers. SystemTap accepts the following types of conditional statements: 6Do this by using <span class="emphasis"><em>conditionals</em></span> in handlers. SystemTap accepts the following types of conditional statements:
7</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">If/Else Statements</span></dt><dd><a id="idm140217036133824" class="indexterm"></a><a id="idm140217034429312" class="indexterm"></a><a id="idm140217037559008" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">if (<em class="replaceable">condition</em>) 7</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">If/Else Statements</span></dt><dd><a id="idm47006120809536" class="indexterm"></a><a id="idm47006124017312" class="indexterm"></a><a id="idm47006120871664" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">if (<em class="replaceable">condition</em>)
8 <em class="replaceable">statement1</em> 8 <em class="replaceable">statement1</em>
9else 9else
10 <em class="replaceable">statement2</em></pre><div class="para"> 10 <em class="replaceable">statement2</em></pre><div class="para">
@@ -30,7 +30,7 @@ probe timer.s(5) { exit() }
30probe end 30probe end
31{ 31{
32 printf("VFS reads total %d\n VFS writes total %d\n", countread, countnonread) 32 printf("VFS reads total %d\n VFS writes total %d\n", countread, countnonread)
33}</pre></div></div><div class="para"><a class="xref" href="handlerconditionalstatements.html#simpleifelseexample">Example 3.11, “ifelse.stp”</a> is a script that counts how many virtual file system reads (<code class="command">vfs_read</code>) and writes (<code class="command">vfs_write</code>) the system performs within a 5-second span. When run, the script increments the value of the variable <code class="command">countread</code> by 1 if the name of the function it probed matches <code class="command">vfs_read</code> (as noted by the condition <code class="command">if (probefunc()=="vfs_read")</code>); otherwise, it increments <code class="command">countnonread</code> (<code class="command">else {countnonread ++}</code>).</div></dd><dt><span class="term">While Loops</span></dt><dd><a id="idm140217041834080" class="indexterm"></a><a id="idm140217044816608" class="indexterm"></a><a id="idm140217039353312" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">while (<em class="replaceable">condition</em>) 33}</pre></div></div><div class="para"><a class="xref" href="handlerconditionalstatements.html#simpleifelseexample">Example 3.11, “ifelse.stp”</a> is a script that counts how many virtual file system reads (<code class="command">vfs_read</code>) and writes (<code class="command">vfs_write</code>) the system performs within a 5-second span. When run, the script increments the value of the variable <code class="command">countread</code> by 1 if the name of the function it probed matches <code class="command">vfs_read</code> (as noted by the condition <code class="command">if (probefunc()=="vfs_read")</code>); otherwise, it increments <code class="command">countnonread</code> (<code class="command">else {countnonread ++}</code>).</div></dd><dt><span class="term">While Loops</span></dt><dd><a id="idm47006129500800" class="indexterm"></a><a id="idm47006125226464" class="indexterm"></a><a id="idm47006128900112" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">while (<em class="replaceable">condition</em>)
34 <em class="replaceable">statement</em></pre><div class="para"> 34 <em class="replaceable">statement</em></pre><div class="para">
35So long as <code class="command"><em class="replaceable">condition</em></code> is non-zero 35So long as <code class="command"><em class="replaceable">condition</em></code> is non-zero
36the block of statements in 36the block of statements in
@@ -38,11 +38,11 @@ the block of statements in
38<code class="command"><em class="replaceable">statement</em></code> is often a statement 38<code class="command"><em class="replaceable">statement</em></code> is often a statement
39block and it must change a value so 39block and it must change a value so
40<code class="command"><em class="replaceable">condition</em></code> will eventually be zero. 40<code class="command"><em class="replaceable">condition</em></code> will eventually be zero.
41</div></dd><dt><span class="term">For Loops</span></dt><dd><a id="idm140217035421296" class="indexterm"></a><a id="idm140217043571024" class="indexterm"></a><a id="idm140217040369632" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">for (<em class="replaceable">initialization</em>; <em class="replaceable">conditional</em>; <em class="replaceable">increment</em>) <em class="replaceable">statement</em></pre><div class="para"> 41</div></dd><dt><span class="term">For Loops</span></dt><dd><a id="idm47006122900960" class="indexterm"></a><a id="idm47006123213088" class="indexterm"></a><a id="idm47006118873408" class="indexterm"></a><div class="para">Format:</div><pre class="programlisting">for (<em class="replaceable">initialization</em>; <em class="replaceable">conditional</em>; <em class="replaceable">increment</em>) <em class="replaceable">statement</em></pre><div class="para">
42The <code class="command">for</code> loop is shorthand for a while loop. The 42The <code class="command">for</code> loop is shorthand for a while loop. The
43following is the equivalent <code class="command">while</code> loop: 43following is the equivalent <code class="command">while</code> loop:
44</div><pre class="programlisting"><em class="replaceable">initialization</em> 44</div><pre class="programlisting"><em class="replaceable">initialization</em>
45while (<em class="replaceable">conditional</em>) { 45while (<em class="replaceable">conditional</em>) {
46 <em class="replaceable">statement</em> 46 <em class="replaceable">statement</em>
47 <em class="replaceable">increment</em> 47 <em class="replaceable">increment</em>
48}</pre></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Conditional Operators</div><a id="idm140217038493168" class="indexterm"></a><a id="idm140217034451312" class="indexterm"></a><a id="idm140217039955168" class="indexterm"></a>Aside from <code class="command">==</code> ("is equal to"), following operators can also be used in conditional statements:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">&gt;=</span></dt><dd><div class="para">Greater than or equal to</div></dd><dt><span class="term">&lt;=</span></dt><dd><div class="para">Less than or equal to</div></dd><dt><span class="term">!=</span></dt><dd><div class="para">Is not equal to</div></dd></dl></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="targetavailable.html"><strong>Prev</strong>3.3.2.3. Checking Target Variable Availability</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="commandlineargssect.html"><strong>Next</strong>3.3.4. Command-Line Arguments</a></li></ul></body></html> \ No newline at end of file 48}</pre></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Conditional Operators</div><a id="idm47006124530240" class="indexterm"></a><a id="idm47006125771904" class="indexterm"></a><a id="idm47006120720464" class="indexterm"></a>Aside from <code class="command">==</code> ("is equal to"), following operators can also be used in conditional statements:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">&gt;=</span></dt><dd><div class="para">Greater than or equal to</div></dd><dt><span class="term">&lt;=</span></dt><dd><div class="para">Less than or equal to</div></dd><dt><span class="term">!=</span></dt><dd><div class="para">Is not equal to</div></dd></dl></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="targetavailable.html"><strong>Prev</strong>3.3.2.3. Checking Target Variable Availability</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="commandlineargssect.html"><strong>Next</strong>3.3.4. Command-Line Arguments</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/index.html b/SystemTap_Beginners_Guide/index.html
index 6a99769b..44af4de2 100644
--- a/SystemTap_Beginners_Guide/index.html
+++ b/SystemTap_Beginners_Guide/index.html
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">SystemTap Beginners Guide</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><meta name="description" content="This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail." /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong></a></li></ul><div class="book"><div class="titlepage"><div><div class="producttitle"><span xmlns:d="http://docbook.org/ns/docbook" class="productname">SystemTap</span> <span xmlns:d="http://docbook.org/ns/docbook" class="productnumber">2.9</span></div><div><h1 class="title"><a id="idm140217060864640"></a>SystemTap Beginners Guide</h1></div><div><h2 class="subtitle">Introduction to SystemTap</h2></div><p xmlns:d="http://docbook.org/ns/docbook" class="edition">Edition 2.9</p><div><h3 class="corpauthor"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">SystemTap Beginners Guide</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><meta name="description" content="This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail." /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="next" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong></a></li></ul><div class="book"><div class="titlepage"><div><div class="producttitle"><span xmlns:d="http://docbook.org/ns/docbook" class="productname">SystemTap</span> <span xmlns:d="http://docbook.org/ns/docbook" class="productnumber">3.0</span></div><div><h1 class="title"><a id="idm47006145467200"></a>SystemTap Beginners Guide</h1></div><div><h2 class="subtitle">Introduction to SystemTap</h2></div><p xmlns:d="http://docbook.org/ns/docbook" class="edition">Edition 3.0</p><div><h3 class="corpauthor">
3 <span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"><img src="Common_Content/images/title_logo.png" alt="Logo" /></object></span> 3 <span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"><img src="Common_Content/images/title_logo.png" alt="Logo" /></object></span>
4 </h3></div><div><div class="authorgroup"><h3 class="corpauthor">Red Hat, Inc.</h3><div class="author"><h3 class="author"><span class="firstname">Don</span> <span class="surname">Domingo </span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Content Services</span></div><code class="email"><a class="email" href="mailto:ddomingo@redhat.com">ddomingo@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">William</span> <span class="surname">Cohen</span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Performance Tools</span></div><code class="email"><a class="email" href="mailto:wcohen@redhat.com">wcohen@redhat.com</a></code></div></div></div><div><p class="copyright">Copyright © 2013 Red Hat, Inc</p></div><div><div class="legalnotice"><a id="idm140217041378512"></a><h1 class="legalnotice">Legal Notice</h1><div class="para"> 4 </h3></div><div><div class="authorgroup"><h3 class="corpauthor">Red Hat, Inc.</h3><div class="author"><h3 class="author"><span class="firstname">Don</span> <span class="surname">Domingo </span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Content Services</span></div><code class="email"><a class="email" href="mailto:ddomingo@redhat.com">ddomingo@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">William</span> <span class="surname">Cohen</span></h3><div class="affiliation"><span xmlns:d="http://docbook.org/ns/docbook" class="orgname">Engineering Services and Operations</span> <span xmlns:d="http://docbook.org/ns/docbook" class="orgdiv">Performance Tools</span></div><code class="email"><a class="email" href="mailto:wcohen@redhat.com">wcohen@redhat.com</a></code></div></div></div><div><p class="copyright">Copyright © 2013 Red Hat, Inc</p></div><div><div class="legalnotice"><a id="idm47006127447856"></a><h1 class="legalnotice">Legal Notice</h1><div class="para">
5 This documentation is free software; you can redistribute 5 This documentation is free software; you can redistribute
6 it and/or modify it under the terms of the GNU General Public 6 it and/or modify it under the terms of the GNU General Public
7 License version 2 as published by the Free Software Foundation. 7 License version 2 as published by the Free Software Foundation.
@@ -18,4 +18,4 @@
18 </div><div class="para"> 18 </div><div class="para">
19 For more details see the file COPYING in the source 19 For more details see the file COPYING in the source
20 distribution of Linux. 20 distribution of Linux.
21 </div></div></div><div><div class="abstract"><p class="title"><strong>Abstract</strong></p><div class="para">This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail.</div></div></div></div></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="SystemTap_Beginners_Guide-Preface.html">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm140217038171440">1. Document Conventions</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm140217037252256">1.1. Typographic Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm140217036723552">1.2. Pull-quote Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm140217036445936">1.3. Notes and Warnings</a></span></dt></dl></dd><dt><span class="section"><a href="pr01s02.html">2. We Need Feedback!</a></span></dt></dl></dd><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-systemtap.html">2. Using SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="understanding-how-systemtap-works.html">3. Understanding How SystemTap Works</a></span></dt><dd><dl><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></dd><dt><span class="chapter"><a href="userspace-probing.html">4. User-space Probing</a></span></dt><dd><dl><dt><span class="section"><a href="userspace-probing.html#uevents">4.1. User-Space Events</a></span></dt><dt><span class="section"><a href="utargetvariable.html">4.2. Accessing User-Space Target Variables</a></span></dt><dt><span class="section"><a href="ustack.html">4.3. User-Space Stack Backtraces</a></span></dt></dl></dd><dt><span class="chapter"><a href="useful-systemtap-scripts.html">5. Useful SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></dd><dt><span class="chapter"><a href="errors.html">6. Understanding SystemTap Errors</a></span></dt><dd><dl><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></dd><dt><span class="chapter"><a href="references.html">7. References</a></span></dt><dt><span class="appendix"><a href="appe-Publican-Revision_History.html">A. Revision History</a></span></dt><dt><span class="index"><a href="ix01.html">Index</a></span></dt></dl></div></div><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong>Preface</a></li></ul></body></html> \ No newline at end of file 21 </div></div></div><div><div class="abstract"><p class="title"><strong>Abstract</strong></p><div class="para">This guide provides basic instructions on how to use SystemTap to monitor different subsystems of a Linux system in finer detail.</div></div></div></div></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="SystemTap_Beginners_Guide-Preface.html">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47006128487520">1. Document Conventions</a></span></dt><dd><dl><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47006131251456">1.1. Typographic Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47006124817712">1.2. Pull-quote Conventions</a></span></dt><dt><span class="section"><a href="SystemTap_Beginners_Guide-Preface.html#idm47006123073008">1.3. Notes and Warnings</a></span></dt></dl></dd><dt><span class="section"><a href="pr01s02.html">2. We Need Feedback!</a></span></dt></dl></dd><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-systemtap.html">2. Using SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="understanding-how-systemtap-works.html">3. Understanding How SystemTap Works</a></span></dt><dd><dl><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></dd><dt><span class="chapter"><a href="userspace-probing.html">4. User-space Probing</a></span></dt><dd><dl><dt><span class="section"><a href="userspace-probing.html#uevents">4.1. User-Space Events</a></span></dt><dt><span class="section"><a href="utargetvariable.html">4.2. Accessing User-Space Target Variables</a></span></dt><dt><span class="section"><a href="ustack.html">4.3. User-Space Stack Backtraces</a></span></dt></dl></dd><dt><span class="chapter"><a href="useful-systemtap-scripts.html">5. Useful SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></dd><dt><span class="chapter"><a href="errors.html">6. Understanding SystemTap Errors</a></span></dt><dd><dl><dt><span class="section"><a href="errors.html#parsetype">6.1. Parse and Semantic Errors</a></span></dt><dt><span class="section"><a href="runtimeerror.html">6.2. Runtime Errors and Warnings</a></span></dt></dl></dd><dt><span class="chapter"><a href="references.html">7. References</a></span></dt><dt><span class="appendix"><a href="appe-Publican-Revision_History.html">A. Revision History</a></span></dt><dt><span class="index"><a href="ix01.html">Index</a></span></dt></dl></div></div><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="SystemTap_Beginners_Guide-Preface.html"><strong>Next</strong>Preface</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/inodewatch2sect.html b/SystemTap_Beginners_Guide/inodewatch2sect.html
index a2f92209..2b29570c 100644
--- a/SystemTap_Beginners_Guide/inodewatch2sect.html
+++ b/SystemTap_Beginners_Guide/inodewatch2sect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.6. Monitoring Changes to File Attributes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /><link rel="next" href="ioblktimesect.html" title="5.2.7. Periodically Print I/O Block Time" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatchsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ioblktimesect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatch2sect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.6. Monitoring Changes to File Attributes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /><link rel="next" href="ioblktimesect.html" title="5.2.7. Periodically Print I/O Block Time" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatchsect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ioblktimesect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatch2sect">
3 ⁠</a>5.2.6. Monitoring Changes to File Attributes</h3></div></div></div><a id="idm140217032497280" class="indexterm"></a><a id="idm140217034637312" class="indexterm"></a><a id="idm140217038984816" class="indexterm"></a><a id="idm140217033272864" class="indexterm"></a><a id="idm140217039058800" class="indexterm"></a><div class="para">This section describes how to monitor if any processes are changing the attributes of a targeted file, in real time. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch2.stp</div> 3 ⁠</a>5.2.6. Monitoring Changes to File Attributes</h3></div></div></div><a id="idm47006120648096" class="indexterm"></a><a id="idm47006123440304" class="indexterm"></a><a id="idm47006122889408" class="indexterm"></a><a id="idm47006125621024" class="indexterm"></a><a id="idm47006129017872" class="indexterm"></a><div class="para">This section describes how to monitor if any processes are changing the attributes of a targeted file, in real time. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch2.stp</div>
4<pre class="programlisting">#! /usr/bin/env stap 4<pre class="programlisting">#! /usr/bin/env stap
5 5
6global ATTR_MODE = 1 6global ATTR_MODE = 1
diff --git a/SystemTap_Beginners_Guide/inodewatchsect.html b/SystemTap_Beginners_Guide/inodewatchsect.html
index 44eb2dfd..5685bb7e 100644
--- a/SystemTap_Beginners_Guide/inodewatchsect.html
+++ b/SystemTap_Beginners_Guide/inodewatchsect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.5. Monitoring Reads and Writes to a File</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /><link rel="next" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceio2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatch2sect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatchsect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.5. Monitoring Reads and Writes to a File</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /><link rel="next" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceio2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatch2sect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="inodewatchsect">
3 ⁠</a>5.2.5. Monitoring Reads and Writes to a File</h3></div></div></div><a id="idm140217040935312" class="indexterm"></a><a id="idm140217034672288" class="indexterm"></a><a id="idm140217041603648" class="indexterm"></a><a id="idm140217041993744" class="indexterm"></a><a id="idm140217043737408" class="indexterm"></a><a id="idm140217038613568" class="indexterm"></a><div class="para">This section describes how to monitor reads from and writes to a file in real time. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch.stp</div> 3 ⁠</a>5.2.5. Monitoring Reads and Writes to a File</h3></div></div></div><a id="idm47006126746032" class="indexterm"></a><a id="idm47006130105056" class="indexterm"></a><a id="idm47006117447856" class="indexterm"></a><a id="idm47006129266768" class="indexterm"></a><a id="idm47006122837904" class="indexterm"></a><a id="idm47006118733728" class="indexterm"></a><div class="para">This section describes how to monitor reads from and writes to a file in real time. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">inodewatch.stp</div>
4<pre class="programlisting">#! /usr/bin/env stap 4<pre class="programlisting">#! /usr/bin/env stap
5 5
6probe vfs.write, vfs.read 6probe vfs.write, vfs.read
@@ -13,6 +13,6 @@ probe vfs.write, vfs.read
13} 13}
14</pre> 14</pre>
15</div><div class="para"><a class="xref" href="inodewatchsect.html#inodewatch">inodewatch.stp</a> takes the following information about the 15</div><div class="para"><a class="xref" href="inodewatchsect.html#inodewatch">inodewatch.stp</a> takes the following information about the
16file as arguments on the command line:</div><a id="idm140217041641712" class="indexterm"></a><a id="idm140217032901968" class="indexterm"></a><a id="idm140217038691184" class="indexterm"></a><a id="idm140217033399872" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">The file's major device number.</div></li><li class="listitem"><div class="para">The file's minor device number.</div></li><li class="listitem"><div class="para">The file's <code class="command">inode</code> number.</div></li></ul></div><a id="idm140217034258752" class="indexterm"></a><a id="idm140217044220224" class="indexterm"></a><a id="idm140217038316416" class="indexterm"></a><div class="para">To get this information, use <code class="command">stat -c '%D %i' <em class="replaceable">filename</em></code>, where <code class="command"><em class="replaceable">filename</em></code> is an absolute path.</div><div class="para">For instance: to monitor <code class="filename">/etc/crontab</code>, run <code class="command">stat -c '%D %i' /etc/crontab</code> first. This gives the following output:</div><pre class="screen">805 1078319</pre><a id="idm140217035593088" class="indexterm"></a><a id="idm140217037571328" class="indexterm"></a><a id="idm140217037560592" class="indexterm"></a><div class="para"><code class="computeroutput">805</code> is the base-16 (hexadecimal) device number. The lower two digits are the minor device number and the upper digits are the major number. <code class="computeroutput">1078319</code> is the <code class="command">inode</code> number. To start monitoring <code class="filename">/etc/crontab</code>, run <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (The <code class="command">0x</code> prefixes indicate base-16 values.</div><div class="para">The output of this command contains the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), the device number (in hex format), and the <code class="command">inode</code> number. <a class="xref" href="inodewatchsect.html#inodewatchoutput">Example 5.10, “inodewatch.stp Sample Output”</a> contains the output of <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (when <code class="command">cat /etc/crontab</code> is executed while the script is running) :</div><div class="example"><a id="inodewatchoutput"> 16file as arguments on the command line:</div><a id="idm47006121652960" class="indexterm"></a><a id="idm47006120313632" class="indexterm"></a><a id="idm47006118797904" class="indexterm"></a><a id="idm47006127408448" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">The file's major device number.</div></li><li class="listitem"><div class="para">The file's minor device number.</div></li><li class="listitem"><div class="para">The file's <code class="command">inode</code> number.</div></li></ul></div><a id="idm47006128892704" class="indexterm"></a><a id="idm47006127587120" class="indexterm"></a><a id="idm47006128629424" class="indexterm"></a><div class="para">To get this information, use <code class="command">stat -c '%D %i' <em class="replaceable">filename</em></code>, where <code class="command"><em class="replaceable">filename</em></code> is an absolute path.</div><div class="para">For instance: to monitor <code class="filename">/etc/crontab</code>, run <code class="command">stat -c '%D %i' /etc/crontab</code> first. This gives the following output:</div><pre class="screen">805 1078319</pre><a id="idm47006120730128" class="indexterm"></a><a id="idm47006127471600" class="indexterm"></a><a id="idm47006118384288" class="indexterm"></a><div class="para"><code class="computeroutput">805</code> is the base-16 (hexadecimal) device number. The lower two digits are the minor device number and the upper digits are the major number. <code class="computeroutput">1078319</code> is the <code class="command">inode</code> number. To start monitoring <code class="filename">/etc/crontab</code>, run <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (The <code class="command">0x</code> prefixes indicate base-16 values.</div><div class="para">The output of this command contains the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), the device number (in hex format), and the <code class="command">inode</code> number. <a class="xref" href="inodewatchsect.html#inodewatchoutput">Example 5.10, “inodewatch.stp Sample Output”</a> contains the output of <code class="command">stap inodewatch.stp 0x8 0x05 1078319</code> (when <code class="command">cat /etc/crontab</code> is executed while the script is running) :</div><div class="example"><a id="inodewatchoutput">
17 ⁠</a><p class="title"><strong>Example 5.10. <a class="xref" href="inodewatchsect.html#inodewatch">inodewatch.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">cat(16437) vfs_read 0x800005/1078319 17 ⁠</a><p class="title"><strong>Example 5.10. <a class="xref" href="inodewatchsect.html#inodewatch">inodewatch.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">cat(16437) vfs_read 0x800005/1078319
18cat(16437) vfs_read 0x800005/1078319</pre></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="traceio2sect.html"><strong>Prev</strong>5.2.4. I/O Monitoring (By Device)</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="inodewatch2sect.html"><strong>Next</strong>5.2.6. Monitoring Changes to File Attributes</a></li></ul></body></html> \ No newline at end of file 18cat(16437) vfs_read 0x800005/1078319</pre></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="traceio2sect.html"><strong>Prev</strong>5.2.4. I/O Monitoring (By Device)</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="inodewatch2sect.html"><strong>Next</strong>5.2.6. Monitoring Changes to File Attributes</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/intro-systemtap-limitations.html b/SystemTap_Beginners_Guide/intro-systemtap-limitations.html
index dd871315..7fe57a04 100644
--- a/SystemTap_Beginners_Guide/intro-systemtap-limitations.html
+++ b/SystemTap_Beginners_Guide/intro-systemtap-limitations.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.3. Limitations of SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /><link rel="next" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-vs-others.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-systemtap.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-limitations"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.3. Limitations of SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /><link rel="next" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-vs-others.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="using-systemtap.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-limitations">
3 ⁠</a>1.3. Limitations of SystemTap</h2></div></div></div><a id="idm140217041356080" class="indexterm"></a><a id="idm140217041354448" class="indexterm"></a><div class="para">The current iteration of SystemTap allows for a multitude of 3 ⁠</a>1.3. Limitations of SystemTap</h2></div></div></div><a id="idm47006125497744" class="indexterm"></a><a id="idm47006125496112" class="indexterm"></a><div class="para">The current iteration of SystemTap allows for a multitude of
4options when probing kernel-space events for a wide range of kernels. 4options when probing kernel-space events for a wide range of kernels.
5However, SystemTap's ability to probe user-space events depends 5However, SystemTap's ability to probe user-space events depends
6on kernel support (the Utrace mechanism) that is not available in many kernels. 6on kernel support (the Utrace mechanism) that is not available in many kernels.
diff --git a/SystemTap_Beginners_Guide/intro-systemtap-vs-others.html b/SystemTap_Beginners_Guide/intro-systemtap-vs-others.html
index f5c283f8..7e42a1bd 100644
--- a/SystemTap_Beginners_Guide/intro-systemtap-vs-others.html
+++ b/SystemTap_Beginners_Guide/intro-systemtap-vs-others.html
@@ -1,3 +1,3 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.2. SystemTap Capabilities</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.html" title="Chapter 1. Introduction" /><link rel="next" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="introduction.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-limitations.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-vs-others"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">1.2. SystemTap Capabilities</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.html" title="Chapter 1. Introduction" /><link rel="next" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="introduction.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-limitations.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="intro-systemtap-vs-others">
3 ⁠</a>1.2. SystemTap Capabilities</h2></div></div></div><a id="idm140217041858912" class="indexterm"></a><a id="idm140217040758736" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="strong strong"><strong>Flexibility:</strong></span> SystemTap's framework allows users to develop simple scripts for investigating and monitoring a wide variety of kernel functions, system calls, and other events that occur in kernel space. As a result, SystemTap is not so much a <span class="emphasis"><em>tool</em></span> as it is a system that allows you to develop your own kernel-specific forensic and monitoring tools.</div></li><li class="listitem"><div class="para"><span class="strong strong"><strong>Ease of use</strong></span>: as mentioned earlier, SystemTap allows users to probe kernel-space events without having to resort to instrument, recompile, install, and reboot the kernel.</div></li></ul></div><div class="para">Most of the SystemTap scripts enumerated in <a class="xref" href="useful-systemtap-scripts.html">Chapter 5, <em>Useful SystemTap Scripts</em></a> demonstrate system forensics and monitoring capabilities not natively available with other similar tools (such as <code class="command">top</code>, <code class="command">oprofile</code>, or <code class="command">ps</code>). These scripts are provided to give readers extensive examples of the application of SystemTap and to educate them further on the capabilities they can employ when writing their own SystemTap scripts.</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="introduction.html"><strong>Prev</strong>Chapter 1. Introduction</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="intro-systemtap-limitations.html"><strong>Next</strong>1.3. Limitations of SystemTap</a></li></ul></body></html> \ No newline at end of file 3 ⁠</a>1.2. SystemTap Capabilities</h2></div></div></div><a id="idm47006125708048" class="indexterm"></a><a id="idm47006125706464" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="strong strong"><strong>Flexibility:</strong></span> SystemTap's framework allows users to develop simple scripts for investigating and monitoring a wide variety of kernel functions, system calls, and other events that occur in kernel space. As a result, SystemTap is not so much a <span class="emphasis"><em>tool</em></span> as it is a system that allows you to develop your own kernel-specific forensic and monitoring tools.</div></li><li class="listitem"><div class="para"><span class="strong strong"><strong>Ease of use</strong></span>: as mentioned earlier, SystemTap allows users to probe kernel-space events without having to resort to instrument, recompile, install, and reboot the kernel.</div></li></ul></div><div class="para">Most of the SystemTap scripts enumerated in <a class="xref" href="useful-systemtap-scripts.html">Chapter 5, <em>Useful SystemTap Scripts</em></a> demonstrate system forensics and monitoring capabilities not natively available with other similar tools (such as <code class="command">top</code>, <code class="command">oprofile</code>, or <code class="command">ps</code>). These scripts are provided to give readers extensive examples of the application of SystemTap and to educate them further on the capabilities they can employ when writing their own SystemTap scripts.</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="introduction.html"><strong>Prev</strong>Chapter 1. Introduction</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="intro-systemtap-limitations.html"><strong>Next</strong>1.3. Limitations of SystemTap</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/introduction.html b/SystemTap_Beginners_Guide/introduction.html
index 9aa7b84b..81ec2171 100644
--- a/SystemTap_Beginners_Guide/introduction.html
+++ b/SystemTap_Beginners_Guide/introduction.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="pr01s02.html" title="2. We Need Feedback!" /><link rel="next" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="pr01s02.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-vs-others.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="introduction"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="pr01s02.html" title="2. We Need Feedback!" /><link rel="next" href="intro-systemtap-vs-others.html" title="1.2. SystemTap Capabilities" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="pr01s02.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="intro-systemtap-vs-others.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="introduction">
3 ⁠</a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></div><a id="idm140217037212128" class="indexterm"></a><a id="idm140217043656864" class="indexterm"></a><div class="para"> 3 ⁠</a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="introduction.html#goals">1.1. Documentation Goals</a></span></dt><dt><span class="section"><a href="intro-systemtap-vs-others.html">1.2. SystemTap Capabilities</a></span></dt><dt><span class="section"><a href="intro-systemtap-limitations.html">1.3. Limitations of SystemTap</a></span></dt></dl></div><a id="idm47006124832432" class="indexterm"></a><a id="idm47006128213376" class="indexterm"></a><div class="para">
4 SystemTap is a tracing and probing tool that allows 4 SystemTap is a tracing and probing tool that allows
5 users to study and monitor the activities of the 5 users to study and monitor the activities of the
6 computer system (particularly, the kernel) in fine 6 computer system (particularly, the kernel) in fine
@@ -11,6 +11,6 @@
11 designed to provide more filtering and analysis 11 designed to provide more filtering and analysis
12 options for collected information. 12 options for collected information.
13 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="goals"> 13 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="goals">
14 ⁠</a>1.1. Documentation Goals</h2></div></div></div><a id="idm140217043981520" class="indexterm"></a><a id="idm140217036368544" class="indexterm"></a><a id="idm140217043614768" class="indexterm"></a><a id="idm140217040438768" class="indexterm"></a><div class="para">SystemTap provides the infrastructure to monitor the running Linux kernel for detailed analysis. This can assist administrators and developers in identifying the underlying cause of a bug or performance problem.</div><div class="para">Without SystemTap, monitoring the activity of a running kernel would require a tedious instrument, recompile, install, and reboot sequence. SystemTap is designed to eliminate this and allows users to gather the same information by running user-written SystemTap scripts.</div><div class="para">SystemTap was initially designed for users with intermediate to advanced knowledge of the kernel. As a consequence, it is less useful to administrators or developers with limited knowledge of and experience with the Linux kernel. Moreover, much of the existing SystemTap documentation is aimed at knowledgeable and experienced users, which makes learning the tool similarly difficult.</div><div class="para">To lower these barriers, the SystemTap Beginners Guide was written with the following goals:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">to introduce users to SystemTap, familiarize 14 ⁠</a>1.1. Documentation Goals</h2></div></div></div><a id="idm47006127039648" class="indexterm"></a><a id="idm47006127856704" class="indexterm"></a><a id="idm47006125981776" class="indexterm"></a><a id="idm47006126535424" class="indexterm"></a><div class="para">SystemTap provides the infrastructure to monitor the running Linux kernel for detailed analysis. This can assist administrators and developers in identifying the underlying cause of a bug or performance problem.</div><div class="para">Without SystemTap, monitoring the activity of a running kernel would require a tedious instrument, recompile, install, and reboot sequence. SystemTap is designed to eliminate this and allows users to gather the same information by running user-written SystemTap scripts.</div><div class="para">SystemTap was initially designed for users with intermediate to advanced knowledge of the kernel. As a consequence, it is less useful to administrators or developers with limited knowledge of and experience with the Linux kernel. Moreover, much of the existing SystemTap documentation is aimed at knowledgeable and experienced users, which makes learning the tool similarly difficult.</div><div class="para">To lower these barriers, the SystemTap Beginners Guide was written with the following goals:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">to introduce users to SystemTap, familiarize
15 them with its architecture, and provide setup 15 them with its architecture, and provide setup
16 instructions;</div></li><li class="listitem"><div class="para">to provide pre-written SystemTap scripts for monitoring detailed activity in different components of the system, along with instructions on how to run them and analyze their output.</div></li></ul></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="pr01s02.html"><strong>Prev</strong>2. We Need Feedback!</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="intro-systemtap-vs-others.html"><strong>Next</strong>1.2. SystemTap Capabilities</a></li></ul></body></html> \ No newline at end of file 16 instructions;</div></li><li class="listitem"><div class="para">to provide pre-written SystemTap scripts for monitoring detailed activity in different components of the system, along with instructions on how to run them and analyze their output.</div></li></ul></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="pr01s02.html"><strong>Prev</strong>2. We Need Feedback!</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="intro-systemtap-vs-others.html"><strong>Next</strong>1.2. SystemTap Capabilities</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/ioblktimesect.html b/SystemTap_Beginners_Guide/ioblktimesect.html
index fa664dbf..011ba82e 100644
--- a/SystemTap_Beginners_Guide/ioblktimesect.html
+++ b/SystemTap_Beginners_Guide/ioblktimesect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.7. Periodically Print I/O Block Time</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /><link rel="next" href="mainsect-profiling.html" title="5.3. Profiling" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatch2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-profiling.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ioblktimesect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.7. Periodically Print I/O Block Time</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="inodewatch2sect.html" title="5.2.6. Monitoring Changes to File Attributes" /><link rel="next" href="mainsect-profiling.html" title="5.3. Profiling" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="inodewatch2sect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-profiling.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ioblktimesect">
3 ⁠</a>5.2.7. Periodically Print I/O Block Time</h3></div></div></div><a id="idm140217040400928" class="indexterm"></a><a id="idm140217045168832" class="indexterm"></a><a id="idm140217039335040" class="indexterm"></a><a id="idm140217037362160" class="indexterm"></a><a id="idm140217037406784" class="indexterm"></a><div class="para"> 3 ⁠</a>5.2.7. Periodically Print I/O Block Time</h3></div></div></div><a id="idm47006120367184" class="indexterm"></a><a id="idm47006123051504" class="indexterm"></a><a id="idm47006123417568" class="indexterm"></a><a id="idm47006128909424" class="indexterm"></a><a id="idm47006124875872" class="indexterm"></a><div class="para">
4 This section describes how to track the amount of time each block I/O requests spends 4 This section describes how to track the amount of time each block I/O requests spends
5 waiting for completion. This is useful in determining whether there are too many 5 waiting for completion. This is useful in determining whether there are too many
6 outstanding block I/O operations at any given time. 6 outstanding block I/O operations at any given time.
diff --git a/SystemTap_Beginners_Guide/iotimesect.html b/SystemTap_Beginners_Guide/iotimesect.html
index 484f6d98..3b8c5ddb 100644
--- a/SystemTap_Beginners_Guide/iotimesect.html
+++ b/SystemTap_Beginners_Guide/iotimesect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.2. Tracking I/O Time For Each File Read or Write</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="mainsect-disk.html" title="5.2. Disk" /><link rel="next" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-disk.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceiosect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="iotimesect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.2. Tracking I/O Time For Each File Read or Write</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="mainsect-disk.html" title="5.2. Disk" /><link rel="next" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-disk.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceiosect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="iotimesect">
3 ⁠</a>5.2.2. Tracking I/O Time For Each File Read or Write</h3></div></div></div><a id="idm140217035182704" class="indexterm"></a><a id="idm140217032901104" class="indexterm"></a><a id="idm140217043791504" class="indexterm"></a><a id="idm140217039571616" class="indexterm"></a><a id="idm140217039680560" class="indexterm"></a><div class="para"> 3 ⁠</a>5.2.2. Tracking I/O Time For Each File Read or Write</h3></div></div></div><a id="idm47006124521776" class="indexterm"></a><a id="idm47006120033296" class="indexterm"></a><a id="idm47006130220272" class="indexterm"></a><a id="idm47006127923552" class="indexterm"></a><a id="idm47006127762192" class="indexterm"></a><div class="para">
4 This section describes how to monitor the amount of time it takes for each process to read 4 This section describes how to monitor the amount of time it takes for each process to read
5 from or write to any file. This is useful to determine what files are slow to 5 from or write to any file. This is useful to determine what files are slow to
6 load on a given system. 6 load on a given system.
@@ -95,7 +95,7 @@ probe syscall.close {
95 to a file. For each file any system call accesses, <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> counts the number 95 to a file. For each file any system call accesses, <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> counts the number
96 of microseconds it takes for any reads or writes to finish and tracks the amount of data (in 96 of microseconds it takes for any reads or writes to finish and tracks the amount of data (in
97 bytes) read from or written to the file. 97 bytes) read from or written to the file.
98</div><a id="idm140217037509136" class="indexterm"></a><a id="idm140217041699664" class="indexterm"></a><a id="idm140217042701776" class="indexterm"></a><div class="para"> 98</div><a id="idm47006121357280" class="indexterm"></a><a id="idm47006122668032" class="indexterm"></a><a id="idm47006118279040" class="indexterm"></a><div class="para">
99 <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> also uses the local variable <code class="command">$count</code> to track the 99 <a class="xref" href="iotimesect.html#iotime">iotime.stp</a> also uses the local variable <code class="command">$count</code> to track the
100 amount of data (in bytes) that any system call <span class="emphasis"><em>attempts</em></span> to read or 100 amount of data (in bytes) that any system call <span class="emphasis"><em>attempts</em></span> to read or
101 write. Note that <code class="command">$return</code> (as used in <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from 101 write. Note that <code class="command">$return</code> (as used in <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from
diff --git a/SystemTap_Beginners_Guide/ix01.html b/SystemTap_Beginners_Guide/ix01.html
index f6958c8e..7a1757c2 100644
--- a/SystemTap_Beginners_Guide/ix01.html
+++ b/SystemTap_Beginners_Guide/ix01.html
@@ -1,3 +1,3 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Index</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="appe-Publican-Revision_History.html" title="Appendix A. Revision History" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"></li></ul><div class="index"><div class="titlepage"><div><div><h1 class="title"><a id="idm140217051078368"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Index</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="appe-Publican-Revision_History.html" title="Appendix A. Revision History" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"></li></ul><div class="index"><div class="titlepage"><div><div><h1 class="title"><a id="idm47006134892832">
3 ⁠</a>Index</h1></div></div></div><div class="index"><div class="indexdiv"><h3>Symbols</h3><dl><dt>$count</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd></dl></dd><dt>$return</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>@avg (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@count (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@max (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@min (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@sum (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>A</h3><dl><dt>adding values to statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>advantages of cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>aggregate element not found</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>aggregates (statistical)</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>aggregation overflow</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>algebraic formulas using arrays</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>architecture notation, determining, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>architecture of SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>array locals not supported</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>array operations</dt><dd><dl><dt>assigning associated values, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>(see also associative arrays)</dt></dl></dd><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associated values</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associative arrays</dt><dd><dl><dt>introduction, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>associated values, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>example, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>index expression, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>key pairs, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>syntax, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>unique keys, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>B</h3><dl><dt>begin</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>building instrumentation modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>call graph tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>capabilities of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt></dl></dd><dt>changes to file attributes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>command-line arguments</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>compiling instrumentation/kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>components</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>conditional operators</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>CONFIG_HZ, computing for, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>contended user-space locks (futex contentions), identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>copy fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>count operator</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>counting function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>CPU ticks</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>cpu()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>cross-compiling, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>cross-instrumentation</dt><dd><dl><dt>advantages of, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>configuration</dt><dd><dl><dt>host system and target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>generating instrumentation from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>host system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>instrumentation module, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target kernel, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>ctime()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>ctime(), example of usage</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>cumulative I/O, tracking</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>D</h3><dl><dt>delete operator</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>determining architecture notation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>determining the kernel version, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>determining time spent in kernel and user space</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>device I/O, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>device number of a file (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>disk I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>division by 0</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>documentation goals</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>empty unique keys</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>end</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>event types</dt><dd><dl><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt></dl></dd><dt>Events</dt><dd><dl><dt>asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>begin, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>end, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>examples of synchronous and asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>introduction, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.function("function"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.trace("tracepoint"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>module("module"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>synchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>syscall.system_call, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>timer events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>user-space, <a class="indexterm" href="userspace-probing.html#uevents">User-Space Events</a></dt><dt>vfs.file_operation, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>example</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>example of multiple command-line arguments</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>examples of synchronous and asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>exceeded MAXACTION</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exceeded MAXNESTING</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exit()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>expected symbol/array index expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>extracting data collected by statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>feedback</dt><dd><dl><dt>contact information for this manual, <a class="indexterm" href="pr01s02.html">We Need Feedback!</a></dt></dl></dd><dt>file attributes, monitoring changes to</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>file reads/writes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>flight recorder mode, <a class="indexterm" href="using-usage.html#flight-recorder">SystemTap Flight Recorder Mode</a></dt><dd><dl><dt>file mode, <a class="indexterm" href="using-usage.html#file-flight-recorder">File Flight Recorder</a></dt><dt>in-memory mode, <a class="indexterm" href="using-usage.html#memory-flight-recorder">In-memory Flight Recorder</a></dt></dl></dd><dt>for loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>format</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>format and syntax</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>format specifiers</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>format strings</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>function call (unresolved)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>function calls (incoming/outgoing), tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>function calls, tallying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dd><dl><dt>cpu(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>ctime(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>gettimeofday_s(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>pp(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>target(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>thread_indent(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>tid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>uid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions (used in handlers)</dt><dd><dl><dt>exit(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions called in network socket code, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>futex (lock) contentions</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contention, definition</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contentions, identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex system call</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>gettimeofday_s()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>global</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>goals, documentation</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd><dt>grammatical/typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>guru mode</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>H</h3><dl><dt>handler functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>handlers</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>introduction, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt></dl></dd><dt>handlers and events, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>heaviest disk reads/writes, identifying</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>host system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>host system and target system</dt><dd><dl><dt>cross-instrumentation</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>I/O block time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>I/O monitoring (by device)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>I/O time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>identifier type mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>identifying contended user-space locks (futex contentions)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>identifying heaviest disk reads/writes</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>if/else</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>if/else conditionals, alternative syntax</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt></dl></dd><dt>if/else statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>incoming TCP connections, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>incoming/outgoing function calls, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>index expression</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>inode number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>Installation</dt><dd><dl><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt></dl></dd><dt>instrumentation module</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>instrumentation modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>integer extractors</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>Introduction</dt><dd><dl><dt>capabilities of SystemTap, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt><dt>documentation goals, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>goals, documentation, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>limitations of SystemTap, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt><dt>performance monitoring, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>invalid division</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>invalid values to variables/arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>iterations, processing elements in an array as</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>K</h3><dl><dt>kernel and user space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel.function("function")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>kernel.trace("tracepoint")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>key pairs</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>libdwfl failure</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>limitations of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>local variables</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>M</h3><dl><dt>MAXACTION exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>MAXNESTING exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>membership (in array), testing for</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>module("module")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>monitoring changes to file attributes</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>monitoring cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>monitoring device I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>monitoring I/O block time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>monitoring I/O time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>monitoring incoming TCP connections</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>monitoring polling applications</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>monitoring reads and writes to a file</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>monitoring system calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>monitoring system calls (volume per process)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>monitoring TCP packets</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>multiple array operations within the same probe</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>multiple command-line arguments, example of</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>N</h3><dl><dt>name</dt><dd><dl><dt>local variables, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>net/socket.c, tracing functions from</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network profiling</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>network socket code, tracing functions called in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network traffic, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>no match for probe point</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>non-global arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>number of errors: N, skipped probes: M</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>operations</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>options, stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>overflow of aggregation</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt>packages required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>performance monitoring</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>pointer dereference fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>polling applications, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>pp()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printf()</dt><dd><dl><dt>format specifiers, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>format strings, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>syntax and format, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printing I/O activity (cumulative)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>printing I/O block time (periodically)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>probe mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probe point (no match for)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probes</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>profiling the network</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>R</h3><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>reads/writes to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>RPMs required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>running scripts from standard input, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>script examples</dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>sessions, SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>Stack backtrace</dt><dd><dl><dt>user-space, <a class="indexterm" href="ustack.html">User-Space Stack Backtraces</a></dt></dl></dd><dt>standard input, running scripts from</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap options, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>staprun</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stapusr</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stat -c, determining file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>stat -c, determining whole device number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>statement blocks</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>summarizing disk I/O traffic</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>synchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>syntax</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>syntax and format</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>syscall.system_call</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>system calls volume (per process), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>system calls, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>SystemTap architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap handlers</dt><dd><dl><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd></dl></dd><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>SystemTap script functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>useful examples, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd><dt>SystemTap scripts, how to run, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap statements</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>SystemTap handler constructs</dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-testsuite package</dt><dd><dl><dt>sample scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>T</h3><dl><dt>tallying function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>tallying virtual file system reads (VFS reads)</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>Tapsets</dt><dd><dl><dt>definition of, <a class="indexterm" href="understanding-tapsets.html">Tapsets</a></dt></dl></dd><dt>target kernel</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system and host system</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt><dd><dl><dt>pretty printing, <a class="indexterm" href="targetvariables.html#targetprettyprinting">Pretty Printing Target Variables</a></dt><dt>typecasting, <a class="indexterm" href="typecasting.html">Typecasting</a></dt><dt>user-space, <a class="indexterm" href="utargetvariable.html">Accessing User-Space Target Variables</a></dt><dt>variable availability, <a class="indexterm" href="targetavailable.html">Checking Target Variable Availability</a></dt></dl></dd><dt>target()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>target-symbol expression, unresolved</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>TCP connections (incoming), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>TCP packets, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>testing for array membership</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>testing, initial, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>thread_indent()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>thread_indent(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>time of I/O </dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>time spent in kernel/user space, determining</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>timer events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>timer.ms(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>timer.s(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>timestamp deltas, computing for</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>timestamps, association thereof to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>tracepoint, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>tracing call graph</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracing functions called in network socket code</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>tracing incoming/outgoing function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracking cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>trigger function</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>type mismatch for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>U</h3><dl><dt>uid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>uname -m, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>uname -r, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>understainding SystemTap errors</dt><dd><dl><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>event types, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt></dl></dd><dt>understanding SystemTap errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unique keys</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>unprivileged script, embedded code in</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved function call</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved target-symbol expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved type for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unsafe embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>Usage</dt><dd><dl><dt>options, stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>standard input, running scripts from, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>staprun, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapusr, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>useful examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dt>user and kernel space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>using arrays in simple computations</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>Using SystemTap, <a class="indexterm" href="using-systemtap.html">Using SystemTap</a></dt><dt>usrdev2kerndev()</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>V</h3><dl><dt>values, assignment of</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>variable modified during 'foreach'</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>variable notations</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>variables</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>variables (local)</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>VFS reads, tallying of</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>vfs.file_operation</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>virtual file system reads (cumulative), tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>virtual file system reads (non-cumulative), tallying</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt>while loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>whole device number (usage as a command-line argument)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>wildcards in events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>writes/reads to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd></dl></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong>Appendix A. Revision History</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li></ul></body></html> \ No newline at end of file 3 ⁠</a>Index</h1></div></div></div><div class="index"><div class="indexdiv"><h3>Symbols</h3><dl><dt>$count</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd></dl></dd><dt>$return</dt><dd><dl><dt>sample usage</dt><dd><dl><dt>local variables, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>@avg (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@count (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@max (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@min (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>@sum (integer extractor)</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>A</h3><dl><dt>adding values to statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>advantages of cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>aggregate element not found</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>aggregates (statistical)</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>aggregation overflow</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>algebraic formulas using arrays</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>architecture notation, determining, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>architecture of SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>array locals not supported</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>array operations</dt><dd><dl><dt>assigning associated values, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>(see also associative arrays)</dt></dl></dd><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associated values</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>associating timestamps to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>associative arrays</dt><dd><dl><dt>introduction, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dd><dl><dt>associated values, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>example, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>index expression, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>key pairs, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>syntax, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt><dt>unique keys, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>B</h3><dl><dt>begin</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>building instrumentation modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>call graph tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>capabilities of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt></dl></dd><dt>changes to file attributes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>command-line arguments</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>compiling instrumentation/kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>components</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>conditional operators</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>CONFIG_HZ, computing for, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>contended user-space locks (futex contentions), identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>copy fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>count operator</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>counting function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>CPU ticks</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>cpu()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>cross-compiling, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>cross-instrumentation</dt><dd><dl><dt>advantages of, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>building kernel modules from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>configuration</dt><dd><dl><dt>host system and target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>generating instrumentation from SystemTap scripts, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>host system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>instrumentation module, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target kernel, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>target system, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>ctime()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>ctime(), example of usage</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>cumulative I/O, tracking</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>D</h3><dl><dt>delete operator</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>determining architecture notation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>determining the kernel version, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>determining time spent in kernel and user space</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>device I/O, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>device number of a file (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>disk I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>division by 0</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>documentation goals</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>empty unique keys</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>end</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>event types</dt><dd><dl><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt></dl></dd><dt>Events</dt><dd><dl><dt>asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>begin, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>end, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>examples of synchronous and asynchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>introduction, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.function("function"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>kernel.trace("tracepoint"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>module("module"), <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>synchronous events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>syscall.system_call, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>timer events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>user-space, <a class="indexterm" href="userspace-probing.html#uevents">User-Space Events</a></dt><dt>vfs.file_operation, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events wildcards, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>example</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>example of multiple command-line arguments</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>examples of synchronous and asynchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>exceeded MAXACTION</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exceeded MAXNESTING</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>exit()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>expected symbol/array index expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>extracting data collected by statistical aggregates</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>feedback</dt><dd><dl><dt>contact information for this manual, <a class="indexterm" href="pr01s02.html">We Need Feedback!</a></dt></dl></dd><dt>file attributes, monitoring changes to</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>file reads/writes, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>flight recorder mode, <a class="indexterm" href="using-usage.html#flight-recorder">SystemTap Flight Recorder Mode</a></dt><dd><dl><dt>file mode, <a class="indexterm" href="using-usage.html#file-flight-recorder">File Flight Recorder</a></dt><dt>in-memory mode, <a class="indexterm" href="using-usage.html#memory-flight-recorder">In-memory Flight Recorder</a></dt></dl></dd><dt>for loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>format</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>format and syntax</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>format specifiers</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>format strings</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>function call (unresolved)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>function calls (incoming/outgoing), tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>function calls, tallying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dd><dl><dt>cpu(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>ctime(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>gettimeofday_s(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>pp(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>target(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>thread_indent(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>tid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>uid(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions (used in handlers)</dt><dd><dl><dt>exit(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>functions called in network socket code, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>futex (lock) contentions</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contention, definition</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex contentions, identifying</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>futex system call</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>gettimeofday_s()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>global</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>goals, documentation</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt></dl></dd><dt>grammatical/typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>guru mode</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>H</h3><dl><dt>handler functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>handlers</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>introduction, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt></dl></dd><dt>handlers and events, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>heaviest disk reads/writes, identifying</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>host system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>host system and target system</dt><dd><dl><dt>cross-instrumentation</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>I/O block time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>I/O monitoring (by device)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>I/O time, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>I/O traffic, summarizing</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>identifier type mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>identifying contended user-space locks (futex contentions)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt></dl></dd><dt>identifying heaviest disk reads/writes</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>if/else</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>if/else conditionals, alternative syntax</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt></dl></dd><dt>if/else statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>incoming TCP connections, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>incoming/outgoing function calls, tracing</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>index expression</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>inode number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>Installation</dt><dd><dl><dt>initial testing, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt></dl></dd><dt>instrumentation module</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>instrumentation modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>integer extractors</dt><dd><dl><dt>computing for statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd></dl></dd><dt>Introduction</dt><dd><dl><dt>capabilities of SystemTap, <a class="indexterm" href="intro-systemtap-vs-others.html">SystemTap Capabilities</a></dt><dt>documentation goals, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>goals, documentation, <a class="indexterm" href="introduction.html#goals">Documentation Goals</a></dt><dt>limitations of SystemTap, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt><dt>performance monitoring, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>invalid division</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>invalid values to variables/arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>iterations, processing elements in an array as</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>K</h3><dl><dt>kernel and user space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>kernel information packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel modules from SystemTap scripts, building, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>kernel version, determining the, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>kernel.function("function")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>kernel.trace("tracepoint")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>key pairs</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>libdwfl failure</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>limitations of SystemTap</dt><dd><dl><dt>Introduction, <a class="indexterm" href="intro-systemtap-limitations.html">Limitations of SystemTap</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>local variables</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>M</h3><dl><dt>MAXACTION exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>MAXNESTING exceeded</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>membership (in array), testing for</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>module("module")</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>monitoring changes to file attributes</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt></dl></dd><dt>monitoring cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>monitoring device I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>monitoring I/O block time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>monitoring I/O time</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>monitoring incoming TCP connections</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>monitoring polling applications</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>monitoring reads and writes to a file</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>monitoring system calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>monitoring system calls (volume per process)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>monitoring TCP packets</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>multiple array operations within the same probe</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd><dt>multiple command-line arguments, example of</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>N</h3><dl><dt>name</dt><dd><dl><dt>local variables, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>net/socket.c, tracing functions from</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network profiling</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>network socket code, tracing functions called in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>network traffic, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd><dt>no match for probe point</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>non-global arrays</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>number of errors: N, skipped probes: M</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>operations</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>associating timestamps to process names, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>associative arrays, <a class="indexterm" href="arrayoperators.html">Array Operations in SystemTap</a></dt><dt>clearing arrays/array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dd><dl><dt>delete operator, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>multiple array operations within the same probe, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>virtual file system reads (non-cumulative), tallying, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd><dt>computing for statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dd><dl><dt>@avg (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@count (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@max (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@min (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>@sum (integer extractor), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>adding values to statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>count (operator), <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt><dt>extracting data collected by statistical aggregates, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>conditional statements, using arrays in, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt><dd><dl><dt>testing for array membership, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd><dt>deleting arrays and array elements, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt><dt>incrementing associated values, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt><dd><dl><dt>tallying virtual file system reads (VFS reads), <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd><dt>multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>processing multiple elements in an array, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dd><dl><dt>cumulative virtual file system reads, tallying, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>iterations, processing elements in an array as, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>limiting the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>ordering the output of foreach, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>reading values from arrays, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>computing for timestamp deltas, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>options, stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>overflow of aggregation</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt>packages required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>performance monitoring</dt><dd><dl><dt>Introduction, <a class="indexterm" href="introduction.html">Introduction</a></dt></dl></dd><dt>pointer dereference fault</dt><dd><dl><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>polling applications, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt></dl></dd><dt>pp()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printf()</dt><dd><dl><dt>format specifiers, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>format strings, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>syntax and format, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>printing I/O activity (cumulative)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>printing I/O block time (periodically)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt></dl></dd><dt>probe mismatch</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probe point (no match for)</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>probes</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt><dt>cumulative virtual file system reads, tallying</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>limiting the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd><dt>ordering the output of foreach</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>profiling the network</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>R</h3><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dd><dl><dt>empty unique keys, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt><dt>using arrays in simple computations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd><dt>computing for timestamp deltas</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>reads/writes to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>required packages, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>RPMs required to run SystemTap, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>running scripts from standard input, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>runtime errors/warnings</dt><dd><dl><dt>understainding SystemTap errors, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>script examples</dt><dd><dl><dt>call graph tracing, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>CPU ticks, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>ctime(), example of usage, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>determining time spent in kernel and user space, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt><dt>file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>futex (lock) contentions, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>futex system call, <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>identifying contended user-space locks (futex contentions), <a class="indexterm" href="futexcontentionsect.html">Identifying Contended User-Space Locks</a></dt><dt>if/else conditionals, alternative syntax, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a></dt><dt>inode number, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring changes to file attributes, <a class="indexterm" href="inodewatch2sect.html">Monitoring Changes to File Attributes</a></dt><dt>monitoring device I/O, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>monitoring I/O block time, <a class="indexterm" href="ioblktimesect.html">Periodically Print I/O Block Time</a></dt><dt>monitoring I/O time, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>monitoring incoming TCP connections, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt><dt>monitoring polling applications, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a></dt><dt>monitoring reads and writes to a file, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>monitoring system calls, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>monitoring system calls (volume per process), <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt><dt>monitoring TCP packets, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt><dt>multiple command-line arguments, example of, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>net/socket.c, tracing functions from, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>network profiling, <a class="indexterm" href="useful-systemtap-scripts.html#nettopsect">Network Profiling</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>stat -c, determining file device number (integer format), <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt><dt>stat -c, determining whole device number, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>summarizing disk I/O traffic, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt><dt>tallying function calls, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>thread_indent(), sample usage, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>timer.ms(), sample usage, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt><dt>timer.s(), sample usage, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt><dt>tracing functions called in network socket code, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt><dt>tracking cumulative I/O, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt><dt>trigger function, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt><dt>usrdev2kerndev(), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt><dt>whole device number (usage as a command-line argument), <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>sessions, SystemTap, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>Setup and Installation, <a class="indexterm" href="using-systemtap.html#using-setup">Installation and Setup</a></dt><dt>Stack backtrace</dt><dd><dl><dt>user-space, <a class="indexterm" href="ustack.html">User-Space Stack Backtraces</a></dt></dl></dd><dt>standard input, running scripts from</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stap options, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>staprun</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stapusr</dt><dd><dl><dt>Usage, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>stat -c, determining file device number (integer format)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd><dt>stat -c, determining whole device number</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>statement blocks</dt><dd><dl><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>statistical aggregates</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-aggregates.html">Computing for Statistical Aggregates</a></dt></dl></dd><dt>summarizing disk I/O traffic</dt><dd><dl><dt>script examples, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a></dt></dl></dd><dt>synchronous events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>syntax</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>syntax and format</dt><dd><dl><dt>printf(), <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd></dl></dd><dt>syscall.system_call</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>system calls volume (per process), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="syscallsbyprocpidsect.html">Tracking System Call Volume Per Process</a></dt></dl></dd><dt>system calls, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>SystemTap architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap handlers</dt><dd><dl><dt>SystemTap handler constructs, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt><dd><dl><dt>syntax and format, <a class="indexterm" href="scriptconstructions.html">Basic SystemTap Handler Constructs</a></dt></dl></dd></dl></dd><dt>systemtap package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>SystemTap script functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>SystemTap scripts</dt><dd><dl><dt>introduction, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dd><dl><dt>components, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>events and handlers, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>format and syntax, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>functions, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>probes, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt><dt>statement blocks, <a class="indexterm" href="scripts.html">SystemTap Scripts</a></dt></dl></dd><dt>useful examples, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd><dt>SystemTap scripts, how to run, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>SystemTap statements</dt><dd><dl><dt>conditional statements, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dd><dl><dt>conditional operators, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>for loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>if/else, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt><dt>while loops, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd><dt>SystemTap handler constructs</dt><dd><dl><dt>command-line arguments, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>global, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt><dt>variable notations, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt><dt>variables, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>systemtap-runtime package, <a class="indexterm" href="using-systemtap.html#installproper">Installing SystemTap</a></dt><dt>systemtap-testsuite package</dt><dd><dl><dt>sample scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>T</h3><dl><dt>tallying function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>tallying virtual file system reads (VFS reads)</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>Tapsets</dt><dd><dl><dt>definition of, <a class="indexterm" href="understanding-tapsets.html">Tapsets</a></dt></dl></dd><dt>target kernel</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system</dt><dd><dl><dt>cross-instrumentation, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target system and host system</dt><dd><dl><dt>configuration, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt></dl></dd><dt>target variables, <a class="indexterm" href="targetvariables.html">Target Variables</a></dt><dd><dl><dt>pretty printing, <a class="indexterm" href="targetvariables.html#targetprettyprinting">Pretty Printing Target Variables</a></dt><dt>typecasting, <a class="indexterm" href="typecasting.html">Typecasting</a></dt><dt>user-space, <a class="indexterm" href="utargetvariable.html">Accessing User-Space Target Variables</a></dt><dt>variable availability, <a class="indexterm" href="targetavailable.html">Checking Target Variable Availability</a></dt></dl></dd><dt>target()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>target-symbol expression, unresolved</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>TCP connections (incoming), monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpconnectionssect">Monitoring Incoming TCP Connections</a></dt></dl></dd><dt>TCP packets, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#tcpdumplikesect">Monitoring TCP Packets</a></dt></dl></dd><dt>testing for array membership</dt><dd><dl><dt>conditional statements, using arrays in</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-conditionals.html">Using Arrays in Conditional Statements</a></dt></dl></dd></dl></dd><dt>testing, initial, <a class="indexterm" href="using-systemtap.html#testing">Initial Testing</a></dt><dt>thread_indent()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>thread_indent(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>time of I/O </dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt></dl></dd><dt>time spent in kernel/user space, determining</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>timer events</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>timer.ms(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="mainsect-profiling.html#countcallssect">Counting Function Calls Made</a></dt></dl></dd><dt>timer.s(), sample usage</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="timeoutssect.html">Monitoring Polling Applications</a>, <a class="indexterm" href="topsyssect.html">Tracking Most Frequently Used System Calls</a></dt></dl></dd><dt>timestamp deltas, computing for</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>timestamps, association thereof to process names</dt><dd><dl><dt>assigning associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd></dl></dd><dt>tracepoint, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a>, <a class="indexterm" href="useful-systemtap-scripts.html#dropwatchsect">Monitoring Network Packets Drops in Kernel</a></dt><dt>tracing call graph</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracing functions called in network socket code</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html#sockettracesect">Tracing Functions Called in Network Socket Code</a></dt></dl></dd><dt>tracing incoming/outgoing function calls</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>tracking cumulative I/O</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd><dt>trigger function</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="paracallgraph.html">Call Graph Tracing</a></dt></dl></dd><dt>type mismatch for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>typographical script error</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>U</h3><dl><dt>uid()</dt><dd><dl><dt>functions, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt></dl></dd><dt>uname -m, <a class="indexterm" href="cross-compiling.html">Generating Instrumentation for Other Computers</a></dt><dt>uname -r, <a class="indexterm" href="using-systemtap.html#install-kinfo">Installing Required Kernel Information Packages Manually</a></dt><dt>understainding SystemTap errors</dt><dd><dl><dt>runtime errors/warnings, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dd><dl><dt>aggregate element not found, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>aggregation overflow, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>copy fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>division by 0, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXACTION exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>MAXNESTING exceeded, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>number of errors: N, skipped probes: M, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt><dt>pointer dereference fault, <a class="indexterm" href="runtimeerror.html">Runtime Errors and Warnings</a></dt></dl></dd></dl></dd><dt>Understanding How SystemTap Works, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dd><dl><dt>architecture, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt><dt>event types, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>events and handlers, <a class="indexterm" href="understanding-how-systemtap-works.html">Understanding How SystemTap Works</a></dt><dt>SystemTap sessions, <a class="indexterm" href="understanding-how-systemtap-works.html#understanding-architecture-tools">Architecture</a></dt></dl></dd><dt>understanding SystemTap errors</dt><dd><dl><dt>parse/semantics error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dd><dl><dt>embedded code in unprivileged script, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>expected symbol/array index expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>grammatical/typographical script error, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>guru mode, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>invalid values to variables/arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>libdwfl failure, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>no match for probe point, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>non-global arrays, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>probe mismatch, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>type mismatch for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved function call, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved target-symbol expression, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>unresolved type for identifier, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt><dt>variable modified during 'foreach', <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unique keys</dt><dd><dl><dt>introduction</dt><dd><dl><dt>arrays, <a class="indexterm" href="associativearrays.html">Associative Arrays</a></dt></dl></dd></dl></dd><dt>unprivileged script, embedded code in</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved function call</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved target-symbol expression</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unresolved type for identifier</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>unsafe embedded code in unprivileged script</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>Usage</dt><dd><dl><dt>options, stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>running SystemTap scripts, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>standard input, running scripts from, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stap, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapdev, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>staprun, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt><dt>stapusr, <a class="indexterm" href="using-usage.html">Running SystemTap Scripts</a></dt></dl></dd><dt>useful examples of SystemTap scripts, <a class="indexterm" href="useful-systemtap-scripts.html">Useful SystemTap Scripts</a></dt><dt>user and kernel space, determining time spent in</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="threadtimessect.html">Determining Time Spent in Kernel and User Space</a></dt></dl></dd><dt>using arrays in simple computations</dt><dd><dl><dt>reading values from arrays</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-readvalues.html">Reading Values From Arrays</a></dt></dl></dd></dl></dd><dt>Using SystemTap, <a class="indexterm" href="using-systemtap.html">Using SystemTap</a></dt><dt>usrdev2kerndev()</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>V</h3><dl><dt>values, assignment of</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayoperators.html#arrayops-assignvalue">Assigning an Associated Value</a></dt></dl></dd><dt>variable modified during 'foreach'</dt><dd><dl><dt>parse/semantics error</dt><dd><dl><dt>understanding SystemTap errors, <a class="indexterm" href="errors.html#parsetype">Parse and Semantic Errors</a></dt></dl></dd></dl></dd><dt>variable notations</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="commandlineargssect.html">Command-Line Arguments</a></dt></dl></dd></dl></dd><dt>variables</dt><dd><dl><dt>SystemTap handler constructs</dt><dd><dl><dt>handlers, <a class="indexterm" href="scriptconstructions.html#variablesconstructs">Variables</a></dt></dl></dd></dl></dd><dt>variables (local)</dt><dd><dl><dt>name, <a class="indexterm" href="systemtapscript-handler.html">SystemTap Handler/Body</a></dt><dt>sample usage</dt><dd><dl><dt>$count, <a class="indexterm" href="iotimesect.html">Tracking I/O Time For Each File Read or Write</a></dt><dt>$return, <a class="indexterm" href="mainsect-disk.html#disktop">Summarizing Disk Read/Write Traffic</a>, <a class="indexterm" href="traceiosect.html">Track Cumulative IO</a></dt></dl></dd></dl></dd><dt>VFS reads, tallying of</dt><dd><dl><dt>incrementing associated values</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-increment.html">Incrementing Associated Values</a></dt></dl></dd></dl></dd><dt>vfs.file_operation</dt><dd><dl><dt>Events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt></dl></dd><dt>virtual file system reads (cumulative), tallying</dt><dd><dl><dt>processing multiple elements in an array</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-foreach.html">Processing Multiple Elements in an Array</a></dt></dl></dd></dl></dd><dt>virtual file system reads (non-cumulative), tallying</dt><dd><dl><dt>clearing arrays/array elements</dt><dd><dl><dt>array operations, <a class="indexterm" href="arrayops-deleting.html">Clearing/Deleting Arrays and Array Elements</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt>while loops</dt><dd><dl><dt>conditional statements</dt><dd><dl><dt>handlers, <a class="indexterm" href="handlerconditionalstatements.html">Conditional Statements</a></dt></dl></dd></dl></dd><dt>whole device number (usage as a command-line argument)</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="traceio2sect.html">I/O Monitoring (By Device)</a></dt></dl></dd><dt>wildcards in events, <a class="indexterm" href="scripts.html#systemtapscript-events">Event</a></dt><dt>writes/reads to a file, monitoring</dt><dd><dl><dt>examples of SystemTap scripts, <a class="indexterm" href="inodewatchsect.html">Monitoring Reads and Writes to a File</a></dt></dl></dd></dl></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="appe-Publican-Revision_History.html"><strong>Prev</strong>Appendix A. Revision History</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/mainsect-disk.html b/SystemTap_Beginners_Guide/mainsect-disk.html
index a3f30899..68002ea4 100644
--- a/SystemTap_Beginners_Guide/mainsect-disk.html
+++ b/SystemTap_Beginners_Guide/mainsect-disk.html
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2. Disk</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="next" href="iotimesect.html" title="5.2.2. Tracking I/O Time For Each File Read or Write" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="useful-systemtap-scripts.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="iotimesect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-disk"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2. Disk</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="next" href="iotimesect.html" title="5.2.2. Tracking I/O Time For Each File Read or Write" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="useful-systemtap-scripts.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="iotimesect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-disk">
3 ⁠</a>5.2. Disk</h2></div></div></div><div class="para">The following sections showcase scripts that monitor disk and I/O activity.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="disktop"> 3 ⁠</a>5.2. Disk</h2></div></div></div><div class="para">The following sections showcase scripts that monitor disk and I/O activity.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="disktop">
4 ⁠</a>5.2.1. Summarizing Disk Read/Write Traffic</h3></div></div></div><a id="idm140217040298592" class="indexterm"></a><a id="idm140217038990816" class="indexterm"></a><a id="idm140217038222800" class="indexterm"></a><a id="idm140217041692576" class="indexterm"></a><a id="idm140217032892688" class="indexterm"></a><a id="idm140217035483760" class="indexterm"></a><a id="idm140217045211168" class="indexterm"></a><a id="idm140217040062496" class="indexterm"></a><div class="para">This section describes how to identify which processes are performing the heaviest disk reads/writes to the system.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">disktop.stp</div> 4 ⁠</a>5.2.1. Summarizing Disk Read/Write Traffic</h3></div></div></div><a id="idm47006124420832" class="indexterm"></a><a id="idm47006129033056" class="indexterm"></a><a id="idm47006118735008" class="indexterm"></a><a id="idm47006118855440" class="indexterm"></a><a id="idm47006123068944" class="indexterm"></a><a id="idm47006119655616" class="indexterm"></a><a id="idm47006129871744" class="indexterm"></a><a id="idm47006122836928" class="indexterm"></a><div class="para">This section describes how to identify which processes are performing the heaviest disk reads/writes to the system.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">disktop.stp</div>
5<pre class="programlisting">#!/usr/bin/env stap 5<pre class="programlisting">#!/usr/bin/env stap
6# 6#
7# Copyright (C) 2007 Oracle Corp. 7# Copyright (C) 2007 Oracle Corp.
@@ -74,7 +74,7 @@ probe end{
74 delete write_bytes 74 delete write_bytes
75} 75}
76</pre> 76</pre>
77</div><div class="para"><a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> outputs the top ten processes responsible for the heaviest reads/writes to disk. <a class="xref" href="mainsect-disk.html#disktopoutput">Example 5.6, “disktop.stp Sample Output”</a> displays a sample output for this script, and includes the following data per listed process:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><code class="computeroutput">UID</code> — user ID. A user ID of <code class="computeroutput">0</code> refers to the root user.</div></li><li class="listitem"><div class="para"><code class="computeroutput">PID</code> — the ID of the listed process.</div></li><li class="listitem"><div class="para"><code class="computeroutput">PPID</code> — the process ID of the listed process's <span class="emphasis"><em>parent process</em></span>.</div></li><li class="listitem"><div class="para"><code class="computeroutput">CMD</code> — the name of the listed process.</div></li><li class="listitem"><div class="para"><code class="computeroutput">DEVICE</code> — which storage device the listed process is reading from or writing to.</div></li><li class="listitem"><div class="para"><code class="computeroutput">T</code> — the type of action performed by the listed process; <code class="computeroutput">W</code> refers to write, while <code class="computeroutput">R</code> refers to read.</div></li><li class="listitem"><div class="para"><code class="computeroutput">BYTES</code> — the amount of data read to or written from disk.</div></li></ul></div><a id="idm140217034795072" class="indexterm"></a><a id="idm140217043565696" class="indexterm"></a><a id="idm140217043144000" class="indexterm"></a><div class="para">The time and date in the output of <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> is returned by the functions <code class="command">ctime()</code> and <code class="command">gettimeofday_s()</code>. <code class="command">ctime()</code> derives calendar time in terms of seconds passed since the Unix epoch (January 1, 1970). <code class="command">gettimeofday_s()</code> counts the <span class="emphasis"><em>actual</em></span> number of seconds since Unix epoch, which gives a fairly accurate human-readable timestamp for the output.</div><a id="idm140217036291168" class="indexterm"></a><a id="idm140217039472960" class="indexterm"></a><a id="idm140217041977872" class="indexterm"></a><div class="para"> 77</div><div class="para"><a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> outputs the top ten processes responsible for the heaviest reads/writes to disk. <a class="xref" href="mainsect-disk.html#disktopoutput">Example 5.6, “disktop.stp Sample Output”</a> displays a sample output for this script, and includes the following data per listed process:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><code class="computeroutput">UID</code> — user ID. A user ID of <code class="computeroutput">0</code> refers to the root user.</div></li><li class="listitem"><div class="para"><code class="computeroutput">PID</code> — the ID of the listed process.</div></li><li class="listitem"><div class="para"><code class="computeroutput">PPID</code> — the process ID of the listed process's <span class="emphasis"><em>parent process</em></span>.</div></li><li class="listitem"><div class="para"><code class="computeroutput">CMD</code> — the name of the listed process.</div></li><li class="listitem"><div class="para"><code class="computeroutput">DEVICE</code> — which storage device the listed process is reading from or writing to.</div></li><li class="listitem"><div class="para"><code class="computeroutput">T</code> — the type of action performed by the listed process; <code class="computeroutput">W</code> refers to write, while <code class="computeroutput">R</code> refers to read.</div></li><li class="listitem"><div class="para"><code class="computeroutput">BYTES</code> — the amount of data read to or written from disk.</div></li></ul></div><a id="idm47006128207904" class="indexterm"></a><a id="idm47006125942384" class="indexterm"></a><a id="idm47006118410368" class="indexterm"></a><div class="para">The time and date in the output of <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> is returned by the functions <code class="command">ctime()</code> and <code class="command">gettimeofday_s()</code>. <code class="command">ctime()</code> derives calendar time in terms of seconds passed since the Unix epoch (January 1, 1970). <code class="command">gettimeofday_s()</code> counts the <span class="emphasis"><em>actual</em></span> number of seconds since Unix epoch, which gives a fairly accurate human-readable timestamp for the output.</div><a id="idm47006127590304" class="indexterm"></a><a id="idm47006121644320" class="indexterm"></a><a id="idm47006123284912" class="indexterm"></a><div class="para">
78 In this script, the <code class="command">$return</code> is a local variable that stores the 78 In this script, the <code class="command">$return</code> is a local variable that stores the
79 actual number of bytes each process reads or writes from the virtual file system. 79 actual number of bytes each process reads or writes from the virtual file system.
80 <code class="command">$return</code> can only be used in return probes (for example, 80 <code class="command">$return</code> can only be used in return probes (for example,
diff --git a/SystemTap_Beginners_Guide/mainsect-profiling.html b/SystemTap_Beginners_Guide/mainsect-profiling.html
index a475194d..0242c59c 100644
--- a/SystemTap_Beginners_Guide/mainsect-profiling.html
+++ b/SystemTap_Beginners_Guide/mainsect-profiling.html
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3. Profiling</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="ioblktimesect.html" title="5.2.7. Periodically Print I/O Block Time" /><link rel="next" href="paracallgraph.html" title="5.3.2. Call Graph Tracing" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="ioblktimesect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="paracallgraph.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-profiling"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3. Profiling</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /><link rel="prev" href="ioblktimesect.html" title="5.2.7. Periodically Print I/O Block Time" /><link rel="next" href="paracallgraph.html" title="5.3.2. Call Graph Tracing" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="ioblktimesect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="paracallgraph.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-profiling">
3 ⁠</a>5.3. Profiling</h2></div></div></div><div class="para">The following sections showcase scripts that profile kernel activity by monitoring function calls.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="countcallssect"> 3 ⁠</a>5.3. Profiling</h2></div></div></div><div class="para">The following sections showcase scripts that profile kernel activity by monitoring function calls.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="countcallssect">
4 ⁠</a>5.3.1. Counting Function Calls Made</h3></div></div></div><a id="idm140217041830032" class="indexterm"></a><a id="idm140217041432160" class="indexterm"></a><a id="idm140217038874960" class="indexterm"></a><a id="idm140217034277888" class="indexterm"></a><a id="idm140217033179904" class="indexterm"></a><div class="para">This section describes how to identify how many times the system called a specific kernel function in a 30-second sample. Depending on the use of wildcards, you can also use this script to target multiple kernel functions.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">functioncallcount.stp</div> 4 ⁠</a>5.3.1. Counting Function Calls Made</h3></div></div></div><a id="idm47006127141184" class="indexterm"></a><a id="idm47006126575440" class="indexterm"></a><a id="idm47006118210768" class="indexterm"></a><a id="idm47006124331600" class="indexterm"></a><a id="idm47006125951600" class="indexterm"></a><div class="para">This section describes how to identify how many times the system called a specific kernel function in a 30-second sample. Depending on the use of wildcards, you can also use this script to target multiple kernel functions.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">functioncallcount.stp</div>
5<pre class="programlisting">#! /usr/bin/env stap 5<pre class="programlisting">#! /usr/bin/env stap
6# The following line command will probe all the functions 6# The following line command will probe all the functions
7# in kernel's memory management code: 7# in kernel's memory management code:
@@ -21,7 +21,7 @@ probe end {
21 exit() 21 exit()
22} 22}
23</pre> 23</pre>
24</div><div class="para"><a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> takes the targeted kernel function as an argument. The argument supports wildcards, which enables you to target multiple kernel functions up to a certain extent.</div><a id="idm140217037622896" class="indexterm"></a><a id="idm140217034720272" class="indexterm"></a><a id="idm140217040301200" class="indexterm"></a><div class="para">The output of <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> contains the name of the function called and how many times it was called during the sample time (in alphabetical order). <a class="xref" href="mainsect-profiling.html#countcallsoutput">Example 5.13, “functioncallcount.stp Sample Output”</a> contains an excerpt from the output of <code class="command">stap functioncallcount.stp "*@mm/*.c"</code>:</div><div class="example"><a id="countcallsoutput"> 24</div><div class="para"><a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> takes the targeted kernel function as an argument. The argument supports wildcards, which enables you to target multiple kernel functions up to a certain extent.</div><a id="idm47006123335632" class="indexterm"></a><a id="idm47006124752288" class="indexterm"></a><a id="idm47006125934640" class="indexterm"></a><div class="para">The output of <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> contains the name of the function called and how many times it was called during the sample time (in alphabetical order). <a class="xref" href="mainsect-profiling.html#countcallsoutput">Example 5.13, “functioncallcount.stp Sample Output”</a> contains an excerpt from the output of <code class="command">stap functioncallcount.stp "*@mm/*.c"</code>:</div><div class="example"><a id="countcallsoutput">
25 ⁠</a><p class="title"><strong>Example 5.13. <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...] 25 ⁠</a><p class="title"><strong>Example 5.13. <a class="xref" href="mainsect-profiling.html#countcalls">functioncallcount.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
26__vma_link 97 26__vma_link 97
27__vma_link_file 66 27__vma_link_file 66
diff --git a/SystemTap_Beginners_Guide/paracallgraph.html b/SystemTap_Beginners_Guide/paracallgraph.html
index 7dbd6f21..a893f2d4 100644
--- a/SystemTap_Beginners_Guide/paracallgraph.html
+++ b/SystemTap_Beginners_Guide/paracallgraph.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.2. Call Graph Tracing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="next" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-profiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="threadtimessect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="paracallgraph"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.2. Call Graph Tracing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="next" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="mainsect-profiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="threadtimessect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="paracallgraph">
3 ⁠</a>5.3.2. Call Graph Tracing</h3></div></div></div><a id="idm140217035575424" class="indexterm"></a><a id="idm140217038692672" class="indexterm"></a><a id="idm140217033110640" class="indexterm"></a><a id="idm140217038319888" class="indexterm"></a><a id="idm140217038137200" class="indexterm"></a><a id="idm140217035367584" class="indexterm"></a><a id="idm140217035046688" class="indexterm"></a><div class="para">This section describes how to trace incoming and outgoing function calls. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">para-callgraph.stp</div> 3 ⁠</a>5.3.2. Call Graph Tracing</h3></div></div></div><a id="idm47006125936736" class="indexterm"></a><a id="idm47006119148128" class="indexterm"></a><a id="idm47006121513920" class="indexterm"></a><a id="idm47006123647776" class="indexterm"></a><a id="idm47006129733280" class="indexterm"></a><a id="idm47006123330544" class="indexterm"></a><a id="idm47006123759520" class="indexterm"></a><div class="para">This section describes how to trace incoming and outgoing function calls. </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">para-callgraph.stp</div>
4<pre class="programlisting">#! /usr/bin/env stap 4<pre class="programlisting">#! /usr/bin/env stap
5 5
6function trace(entry_p, extra) { 6function trace(entry_p, extra) {
@@ -26,14 +26,14 @@ probe $2.return {
26probe $1.call { trace(1, $$parms) } 26probe $1.call { trace(1, $$parms) }
27probe $1.return { trace(-1, $$return) } 27probe $1.return { trace(-1, $$return) }
28</pre> 28</pre>
29</div><a id="idm140217039956848" class="indexterm"></a><a id="idm140217035826992" class="indexterm"></a><a id="idm140217045273904" class="indexterm"></a><a id="idm140217036829984" class="indexterm"></a><div class="para"><a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> takes two command-line arguments:</div><a id="idm140217037041744" class="indexterm"></a><a id="idm140217045223424" class="indexterm"></a><a id="idm140217036270224" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"> 29</div><a id="idm47006127889680" class="indexterm"></a><a id="idm47006120508224" class="indexterm"></a><a id="idm47006121446784" class="indexterm"></a><a id="idm47006127035680" class="indexterm"></a><div class="para"><a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> takes two command-line arguments:</div><a id="idm47006119077184" class="indexterm"></a><a id="idm47006121680192" class="indexterm"></a><a id="idm47006120035904" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">
30 The function/s whose entry/exit call you'd like to trace 30 The function/s whose entry/exit call you'd like to trace
31 (<code class="command">$1</code>). 31 (<code class="command">$1</code>).
32 </div></li><li class="listitem"><div class="para"> 32 </div></li><li class="listitem"><div class="para">
33 A second optional <em class="firstterm">trigger function</em> (<code class="command">$2</code>), which 33 A second optional <em class="firstterm">trigger function</em> (<code class="command">$2</code>), which
34 enables or disables tracing on a per-thread basis. Tracing in each thread 34 enables or disables tracing on a per-thread basis. Tracing in each thread
35 will continue as long as the trigger function has not exited yet. 35 will continue as long as the trigger function has not exited yet.
36 </div></li></ul></div><a id="idm140217036506800" class="indexterm"></a><a id="idm140217036513904" class="indexterm"></a><a id="idm140217043061616" class="indexterm"></a><div class="para"><a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> uses <code class="command">thread_indent()</code>; as such, its output contains the timestamp, process name, and thread ID of <code class="command">$1</code> (that is, the probe function you are tracing). For more information about <code class="command">thread_indent()</code>, refer to its entry in <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a>.</div><div class="para">The following example contains an excerpt from the output 36 </div></li></ul></div><a id="idm47006123638080" class="indexterm"></a><a id="idm47006124343312" class="indexterm"></a><a id="idm47006124229360" class="indexterm"></a><div class="para"><a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> uses <code class="command">thread_indent()</code>; as such, its output contains the timestamp, process name, and thread ID of <code class="command">$1</code> (that is, the probe function you are tracing). For more information about <code class="command">thread_indent()</code>, refer to its entry in <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a>.</div><div class="para">The following example contains an excerpt from the output
37for <code class="command">stap para-callgraph.stp 'kernel.function("*@fs/*.c")' 'kernel.function("sys_read")'</code>:</div><div class="example"><a id="paracallgraphoutput"> 37for <code class="command">stap para-callgraph.stp 'kernel.function("*@fs/*.c")' 'kernel.function("sys_read")'</code>:</div><div class="example"><a id="paracallgraphoutput">
38 ⁠</a><p class="title"><strong>Example 5.14. <a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...] 38 ⁠</a><p class="title"><strong>Example 5.14. <a class="xref" href="paracallgraph.html#scriptcallgraph">para-callgraph.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
39 267 gnome-terminal(2921): &lt;-do_sync_read return=0xfffffffffffffff5 39 267 gnome-terminal(2921): &lt;-do_sync_read return=0xfffffffffffffff5
diff --git a/SystemTap_Beginners_Guide/pr01s02.html b/SystemTap_Beginners_Guide/pr01s02.html
index f154ddaa..7ead815d 100644
--- a/SystemTap_Beginners_Guide/pr01s02.html
+++ b/SystemTap_Beginners_Guide/pr01s02.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2. We Need Feedback!</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="prev" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="SystemTap_Beginners_Guide-Preface.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="introduction.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="idm140217036383024"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2. We Need Feedback!</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="prev" href="SystemTap_Beginners_Guide-Preface.html" title="Preface" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="SystemTap_Beginners_Guide-Preface.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="introduction.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="idm47006123518864">
3 ⁠</a>2. We Need Feedback!</h2></div></div></div><a id="idm140217039022048" class="indexterm"></a><div class="para"> 3 ⁠</a>2. We Need Feedback!</h2></div></div></div><a id="idm47006124690976" class="indexterm"></a><div class="para">
4 If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! 4 If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you!
5Please submit a report in Bugzilla: 5Please submit a report in Bugzilla:
6<a href="http://sourceware.org/bugzilla/">http://sourceware.org/bugzilla/</a> 6<a href="http://sourceware.org/bugzilla/">http://sourceware.org/bugzilla/</a>
diff --git a/SystemTap_Beginners_Guide/runtimeerror.html b/SystemTap_Beginners_Guide/runtimeerror.html
index 84b9eeb6..a8e07b3a 100644
--- a/SystemTap_Beginners_Guide/runtimeerror.html
+++ b/SystemTap_Beginners_Guide/runtimeerror.html
@@ -1,42 +1,42 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">6.2. Runtime Errors and Warnings</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="prev" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="next" href="references.html" title="Chapter 7. References" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="runtimeerror"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">6.2. Runtime Errors and Warnings</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="prev" href="errors.html" title="Chapter 6. Understanding SystemTap Errors" /><link rel="next" href="references.html" title="Chapter 7. References" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="runtimeerror">
3 ⁠</a>6.2. Runtime Errors and Warnings</h2></div></div></div><a id="idm140217041017200" class="indexterm"></a><a id="idm140217041015568" class="indexterm"></a><a id="idm140217041013952" class="indexterm"></a><div class="para"> 3 ⁠</a>6.2. Runtime Errors and Warnings</h2></div></div></div><a id="idm47006124085520" class="indexterm"></a><a id="idm47006125037312" class="indexterm"></a><a id="idm47006125035808" class="indexterm"></a><div class="para">
4 Runtime errors and warnings occur when the SystemTap 4 Runtime errors and warnings occur when the SystemTap
5 instrumentation has been installed and is collecting data on 5 instrumentation has been installed and is collecting data on
6 the system. 6 the system.
7 </div><h3><a id="idm140217041280816"> 7 </div><h3><a id="idm47006125033616">
8 ⁠</a>WARNING: Number of errors: <em class="replaceable">N</em>, skipped probes: <em class="replaceable">M</em></h3><a id="idm140217041279056" class="indexterm"></a><a id="idm140217041972496" class="indexterm"></a><a id="idm140217041970416" class="indexterm"></a><a id="idm140217041968320" class="indexterm"></a><div class="para"> 8 ⁠</a>WARNING: Number of errors: <em class="replaceable">N</em>, skipped probes: <em class="replaceable">M</em></h3><a id="idm47006127434816" class="indexterm"></a><a id="idm47006127432832" class="indexterm"></a><a id="idm47006127430752" class="indexterm"></a><a id="idm47006125056272" class="indexterm"></a><div class="para">
9 Errors and/or skipped probes occurred during this run. Both 9 Errors and/or skipped probes occurred during this run. Both
10 <em class="replaceable">N</em> and <em class="replaceable">M</em> are 10 <em class="replaceable">N</em> and <em class="replaceable">M</em> are
11 the counts of the number of probes that were not executed due to 11 the counts of the number of probes that were not executed due to
12 conditions such as too much time required to execute event handlers over 12 conditions such as too much time required to execute event handlers over
13 an interval of time. 13 an interval of time.
14</div><h3><a id="idm140217042299120"> 14</div><h3><a id="idm47006125052720">
15 ⁠</a>division by 0</h3><a id="idm140217042298064" class="indexterm"></a><a id="idm140217037354352" class="indexterm"></a><a id="idm140217037352288" class="indexterm"></a><a id="idm140217037350208" class="indexterm"></a><a id="idm140217038499776" class="indexterm"></a><div class="para"> 15 ⁠</a>division by 0</h3><a id="idm47006122708976" class="indexterm"></a><a id="idm47006122706896" class="indexterm"></a><a id="idm47006122704832" class="indexterm"></a><a id="idm47006127256096" class="indexterm"></a><a id="idm47006127254016" class="indexterm"></a><div class="para">
16 The script code performed an invalid division. 16 The script code performed an invalid division.
17</div><h3><a id="idm140217038497280"> 17</div><h3><a id="idm47006121774832">
18 ⁠</a>aggregate element not found</h3><a id="idm140217038496256" class="indexterm"></a><a id="idm140217037232752" class="indexterm"></a><a id="idm140217037230672" class="indexterm"></a><a id="idm140217037228576" class="indexterm"></a><div class="para"> 18 ⁠</a>aggregate element not found</h3><a id="idm47006121773808" class="indexterm"></a><a id="idm47006121771712" class="indexterm"></a><a id="idm47006125211968" class="indexterm"></a><a id="idm47006125209872" class="indexterm"></a><div class="para">
19 A statistics extractor function other than <code class="command">@count</code> 19 A statistics extractor function other than <code class="command">@count</code>
20 was invoked on an aggregate that has not had any values accumulated yet. 20 was invoked on an aggregate that has not had any values accumulated yet.
21 This is similar to a division by zero. 21 This is similar to a division by zero.
22</div><h3><a id="idm140217033330336"> 22</div><h3><a id="idm47006126105856">
23 ⁠</a>aggregation overflow</h3><a id="idm140217033329328" class="indexterm"></a><a id="idm140217035996896" class="indexterm"></a><a id="idm140217035994832" class="indexterm"></a><a id="idm140217035992752" class="indexterm"></a><a id="idm140217036836000" class="indexterm"></a><div class="para"> 23 ⁠</a>aggregation overflow</h3><a id="idm47006126104848" class="indexterm"></a><a id="idm47006126102768" class="indexterm"></a><a id="idm47006129857776" class="indexterm"></a><a id="idm47006129855696" class="indexterm"></a><a id="idm47006129853616" class="indexterm"></a><div class="para">
24An array containing aggregate values contains too many distinct key pairs at this time. 24An array containing aggregate values contains too many distinct key pairs at this time.
25</div><h3><a id="idm140217036832976"> 25</div><h3><a id="idm47006123079392">
26 ⁠</a>MAXNESTING exceeded</h3><a id="idm140217036832256" class="indexterm"></a><a id="idm140217041518928" class="indexterm"></a><a id="idm140217041516864" class="indexterm"></a><a id="idm140217043751536" class="indexterm"></a><a id="idm140217043749456" class="indexterm"></a><div class="para"> 26 ⁠</a>MAXNESTING exceeded</h3><a id="idm47006123078672" class="indexterm"></a><a id="idm47006124083104" class="indexterm"></a><a id="idm47006124081040" class="indexterm"></a><a id="idm47006124078960" class="indexterm"></a><a id="idm47006120861584" class="indexterm"></a><div class="para">
27 Too many levels of function call nesting were attempted. 27 Too many levels of function call nesting were attempted.
28 The default nesting of function calls allowed is 10. 28 The default nesting of function calls allowed is 10.
29</div><h3><a id="idm140217043746832"> 29</div><h3><a id="idm47006120858960">
30 ⁠</a>MAXACTION exceeded</h3><a id="idm140217042743776" class="indexterm"></a><a id="idm140217042741696" class="indexterm"></a><a id="idm140217042739632" class="indexterm"></a><a id="idm140217040126224" class="indexterm"></a><a id="idm140217040124144" class="indexterm"></a><div class="para"> 30 ⁠</a>MAXACTION exceeded</h3><a id="idm47006120857952" class="indexterm"></a><a id="idm47006119568448" class="indexterm"></a><a id="idm47006119566384" class="indexterm"></a><a id="idm47006122754944" class="indexterm"></a><a id="idm47006122752864" class="indexterm"></a><div class="para">
31 The probe handler attempted to execute too many statements in the 31 The probe handler attempted to execute too many statements in the
32 probe handler. The default number of actions allowed in a probe handler 32 probe handler. The default number of actions allowed in a probe handler
33 is 1000. 33 is 1000.
34</div><h3><a id="idm140217041298304"> 34</div><h3><a id="idm47006122750208">
35 ⁠</a>kernel/user string copy fault at <em class="replaceable">ADDR</em></h3><a id="idm140217041296976" class="indexterm"></a><a id="idm140217041294896" class="indexterm"></a><a id="idm140217041292832" class="indexterm"></a><a id="idm140217040810176" class="indexterm"></a><div class="para"> 35 ⁠</a>kernel/user string copy fault at <em class="replaceable">ADDR</em></h3><a id="idm47006119155440" class="indexterm"></a><a id="idm47006119153360" class="indexterm"></a><a id="idm47006127055392" class="indexterm"></a><a id="idm47006127053424" class="indexterm"></a><div class="para">
36 The probe handler attempted to copy a string from kernel or 36 The probe handler attempted to copy a string from kernel or
37 user space at an invalid address (<em class="replaceable">ADDR</em>). 37 user space at an invalid address (<em class="replaceable">ADDR</em>).
38</div><h3><a id="idm140217040807120"> 38</div><h3><a id="idm47006127050368">
39 ⁠</a>pointer dereference fault</h3><a id="idm140217041494928" class="indexterm"></a><a id="idm140217041492880" class="indexterm"></a><a id="idm140217041490800" class="indexterm"></a><a id="idm140217035229584" class="indexterm"></a><div class="para"> 39 ⁠</a>pointer dereference fault</h3><a id="idm47006126320944" class="indexterm"></a><a id="idm47006126318960" class="indexterm"></a><a id="idm47006126316880" class="indexterm"></a><a id="idm47006119500896" class="indexterm"></a><div class="para">
40 There was a fault encountered during a pointer 40 There was a fault encountered during a pointer
41 dereference operation such as a target variable evaluation. 41 dereference operation such as a target variable evaluation.
42</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong>Chapter 6. Understanding SystemTap Errors</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong>Chapter 7. References</a></li></ul></body></html> \ No newline at end of file 42</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="errors.html"><strong>Prev</strong>Chapter 6. Understanding SystemTap Errors</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="references.html"><strong>Next</strong>Chapter 7. References</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/scriptconstructions.html b/SystemTap_Beginners_Guide/scriptconstructions.html
index abad51ab..762354ed 100644
--- a/SystemTap_Beginners_Guide/scriptconstructions.html
+++ b/SystemTap_Beginners_Guide/scriptconstructions.html
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3. Basic SystemTap Handler Constructs</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /><link rel="next" href="targetvariables.html" title="3.3.2. Target Variables" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="systemtapscript-handler.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetvariables.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="scriptconstructions"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3. Basic SystemTap Handler Constructs</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /><link rel="next" href="targetvariables.html" title="3.3.2. Target Variables" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="systemtapscript-handler.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetvariables.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="scriptconstructions">
3 ⁠</a>3.3. Basic SystemTap Handler Constructs</h2></div></div></div><a id="idm140217043553936" class="indexterm"></a><a id="idm140217037288160" class="indexterm"></a><a id="idm140217043395744" class="indexterm"></a><a id="idm140217042093440" class="indexterm"></a><a id="idm140217041613744" class="indexterm"></a><div class="para">SystemTap supports the use of several basic constructs in handlers. The syntax for most of these handler constructs are mostly based on C and <code class="command">awk</code> syntax. This section describes several of the most useful SystemTap handler constructs, which should provide you with enough information to write simple yet useful SystemTap scripts.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="variablesconstructs"> 3 ⁠</a>3.3. Basic SystemTap Handler Constructs</h2></div></div></div><a id="idm47006125771344" class="indexterm"></a><a id="idm47006119004992" class="indexterm"></a><a id="idm47006126783952" class="indexterm"></a><a id="idm47006124938000" class="indexterm"></a><a id="idm47006125353136" class="indexterm"></a><div class="para">SystemTap supports the use of several basic constructs in handlers. The syntax for most of these handler constructs are mostly based on C and <code class="command">awk</code> syntax. This section describes several of the most useful SystemTap handler constructs, which should provide you with enough information to write simple yet useful SystemTap scripts.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="variablesconstructs">
4 ⁠</a>3.3.1. Variables</h3></div></div></div><a id="idm140217042035328" class="indexterm"></a><a id="idm140217034744880" class="indexterm"></a><a id="idm140217037962624" class="indexterm"></a><a id="idm140217032017888" class="indexterm"></a><div class="para">Variables can be used freely throughout a handler; simply choose a 4 ⁠</a>3.3.1. Variables</h3></div></div></div><a id="idm47006119527520" class="indexterm"></a><a id="idm47006125589664" class="indexterm"></a><a id="idm47006128646976" class="indexterm"></a><a id="idm47006128320720" class="indexterm"></a><div class="para">Variables can be used freely throughout a handler; simply choose a
5name, assign a value from a function or expression to it, and use it in an expression. SystemTap automatically identifies whether a variable should be typed as a string or integer, based on the type of the values assigned to it. For instance, if you use set the variable <code class="command">foo</code> to <code class="command">gettimeofday_s()</code> (as in <code class="command">foo = gettimeofday_s()</code>), then <code class="command">foo</code> is typed as a number and can be printed in a <code class="command">printf()</code> with the integer format specifier (<code class="command">%d</code>).</div><a id="idm140217036965232" class="indexterm"></a><a id="idm140217034735600" class="indexterm"></a><a id="idm140217037888640" class="indexterm"></a><div class="para">Note, however, that by default variables are only local to the probe they are used in. This means that variables are initialized, used and disposed at each probe handler invocation. To share a variable between probes, declare the variable name using <code class="command">global</code> outside of the probes. Consider the following example:</div><div class="example"><a id="timerjiffies"> 5name, assign a value from a function or expression to it, and use it in an expression. SystemTap automatically identifies whether a variable should be typed as a string or integer, based on the type of the values assigned to it. For instance, if you use set the variable <code class="command">foo</code> to <code class="command">gettimeofday_s()</code> (as in <code class="command">foo = gettimeofday_s()</code>), then <code class="command">foo</code> is typed as a number and can be printed in a <code class="command">printf()</code> with the integer format specifier (<code class="command">%d</code>).</div><a id="idm47006124236048" class="indexterm"></a><a id="idm47006126174576" class="indexterm"></a><a id="idm47006118598256" class="indexterm"></a><div class="para">Note, however, that by default variables are only local to the probe they are used in. This means that variables are initialized, used and disposed at each probe handler invocation. To share a variable between probes, declare the variable name using <code class="command">global</code> outside of the probes. Consider the following example:</div><div class="example"><a id="timerjiffies">
6 ⁠</a><p class="title"><strong>Example 3.8. timer-jiffies.stp</strong></p><div class="example-contents"><pre class="programlisting">global count_jiffies, count_ms 6 ⁠</a><p class="title"><strong>Example 3.8. timer-jiffies.stp</strong></p><div class="example-contents"><pre class="programlisting">global count_jiffies, count_ms
7probe timer.jiffies(100) { count_jiffies ++ } 7probe timer.jiffies(100) { count_jiffies ++ }
8probe timer.ms(100) { count_ms ++ } 8probe timer.ms(100) { count_ms ++ }
@@ -12,4 +12,4 @@ probe timer.ms(12345)
12 printf ("jiffies:ms ratio %d:%d =&gt; CONFIG_HZ=%d\n", 12 printf ("jiffies:ms ratio %d:%d =&gt; CONFIG_HZ=%d\n",
13 count_jiffies, count_ms, hz) 13 count_jiffies, count_ms, hz)
14 exit () 14 exit ()
15}</pre></div></div><a id="idm140217040329072" class="indexterm"></a><div class="para"><a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> computes the <code class="command">CONFIG_HZ</code> setting of the kernel using timers that count jiffies and milliseconds, then computing accordingly. The <code class="command">global</code> statement allows the script to use the variables <code class="command">count_jiffies</code> and <code class="command">count_ms</code> (set in their own respective probes) to be shared with <code class="command">probe timer.ms(12345)</code>.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">The <code class="command">++</code> notation in <a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> (that is, <code class="command">count_jiffies ++</code> and <code class="command">count_ms ++</code>) is used to increment the value of a variable by 1. In the following probe, <code class="command">count_jiffies</code> is incremented by 1 every 100 jiffies:</div><pre class="screen">probe timer.jiffies(100) { count_jiffies ++ }</pre><div class="para">In this instance, SystemTap understands that <code class="command">count_jiffies</code> is an integer. Because no initial value was assigned to <code class="command">count_jiffies</code>, its initial value is zero by default.</div></div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="systemtapscript-handler.html"><strong>Prev</strong>3.2.2. SystemTap Handler/Body</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="targetvariables.html"><strong>Next</strong>3.3.2. Target Variables</a></li></ul></body></html> \ No newline at end of file 15}</pre></div></div><a id="idm47006129433824" class="indexterm"></a><div class="para"><a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> computes the <code class="command">CONFIG_HZ</code> setting of the kernel using timers that count jiffies and milliseconds, then computing accordingly. The <code class="command">global</code> statement allows the script to use the variables <code class="command">count_jiffies</code> and <code class="command">count_ms</code> (set in their own respective probes) to be shared with <code class="command">probe timer.ms(12345)</code>.</div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">The <code class="command">++</code> notation in <a class="xref" href="scriptconstructions.html#timerjiffies">Example 3.8, “timer-jiffies.stp”</a> (that is, <code class="command">count_jiffies ++</code> and <code class="command">count_ms ++</code>) is used to increment the value of a variable by 1. In the following probe, <code class="command">count_jiffies</code> is incremented by 1 every 100 jiffies:</div><pre class="screen">probe timer.jiffies(100) { count_jiffies ++ }</pre><div class="para">In this instance, SystemTap understands that <code class="command">count_jiffies</code> is an integer. Because no initial value was assigned to <code class="command">count_jiffies</code>, its initial value is zero by default.</div></div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="systemtapscript-handler.html"><strong>Prev</strong>3.2.2. SystemTap Handler/Body</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="targetvariables.html"><strong>Next</strong>3.3.2. Target Variables</a></li></ul></body></html> \ No newline at end of file
diff --git a/SystemTap_Beginners_Guide/scripts.html b/SystemTap_Beginners_Guide/scripts.html
index 8039aec3..831a58b3 100644
--- a/SystemTap_Beginners_Guide/scripts.html
+++ b/SystemTap_Beginners_Guide/scripts.html
@@ -1,16 +1,16 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2. SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="next" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="understanding-how-systemtap-works.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="systemtapscript-handler.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="scripts"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2. SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="next" href="systemtapscript-handler.html" title="3.2.2. SystemTap Handler/Body" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="understanding-how-systemtap-works.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="systemtapscript-handler.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="scripts">
3 ⁠</a>3.2. SystemTap Scripts</h2></div></div></div><a id="idm140217031898624" class="indexterm"></a><a id="idm140217031899776" class="indexterm"></a><div class="para"> 3 ⁠</a>3.2. SystemTap Scripts</h2></div></div></div><a id="idm47006117645712" class="indexterm"></a><a id="idm47006117645056" class="indexterm"></a><div class="para">
4 For the most part, SystemTap scripts are the foundation of each SystemTap 4 For the most part, SystemTap scripts are the foundation of each SystemTap
5 session. SystemTap scripts instruct SystemTap on what type of information to 5 session. SystemTap scripts instruct SystemTap on what type of information to
6 collect, and what to do once that information is collected. 6 collect, and what to do once that information is collected.
7 </div><a id="idm140217031911936" class="indexterm"></a><a id="idm140217031903072" class="indexterm"></a><a id="idm140217031905216" class="indexterm"></a><a id="idm140217031906992" class="indexterm"></a><a id="idm140217031908768" class="indexterm"></a><a id="idm140217031910544" class="indexterm"></a><div class="para"> 7 </div><a id="idm47006117647280" class="indexterm"></a><a id="idm47006117649296" class="indexterm"></a><a id="idm47006117651072" class="indexterm"></a><a id="idm47006117653008" class="indexterm"></a><a id="idm47006117654960" class="indexterm"></a><a id="idm47006117656896" class="indexterm"></a><div class="para">
8 As stated in <a class="xref" href="understanding-how-systemtap-works.html">Chapter 3, <em>Understanding How SystemTap Works</em></a>, SystemTap 8 As stated in <a class="xref" href="understanding-how-systemtap-works.html">Chapter 3, <em>Understanding How SystemTap Works</em></a>, SystemTap
9 scripts are made up of two components: <span class="emphasis"><em>events</em></span> and 9 scripts are made up of two components: <span class="emphasis"><em>events</em></span> and
10 <span class="emphasis"><em>handlers</em></span>. Once a SystemTap session is underway, 10 <span class="emphasis"><em>handlers</em></span>. Once a SystemTap session is underway,
11 SystemTap monitors the operating system for the specified events and 11 SystemTap monitors the operating system for the specified events and
12 executes the handlers as they occur. 12 executes the handlers as they occur.
13 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm140217031914720" class="indexterm"></a><a id="idm140217031916240" class="indexterm"></a><a id="idm140217031918016" class="indexterm"></a><div class="para"> 13 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47006117662112" class="indexterm"></a><a id="idm47006117663600" class="indexterm"></a><a id="idm47006117665536" class="indexterm"></a><div class="para">
14 An event and its corresponding handler is collectively called a 14 An event and its corresponding handler is collectively called a
15 <span class="emphasis"><em>probe</em></span>. A SystemTap script can have multiple probes. 15 <span class="emphasis"><em>probe</em></span>. A SystemTap script can have multiple probes.
16 </div><div class="para"> 16 </div><div class="para">
@@ -26,7 +26,7 @@
26 recompilation of the code and allows more flexibility with regard to 26 recompilation of the code and allows more flexibility with regard to
27 handlers. Events serve as the triggers for handlers to run; handlers can be 27 handlers. Events serve as the triggers for handlers to run; handlers can be
28 specified to record specified data and print it in a certain manner. 28 specified to record specified data and print it in a certain manner.
29 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Format</div><a id="idm140217031924608" class="indexterm"></a><a id="idm140217031925632" class="indexterm"></a><a id="idm140217031927408" class="indexterm"></a><a id="idm140217031929184" class="indexterm"></a> 29 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Format</div><a id="idm47006117672128" class="indexterm"></a><a id="idm47006117674000" class="indexterm"></a><a id="idm47006117675648" class="indexterm"></a><a id="idm47006117677536" class="indexterm"></a>
30 SystemTap scripts use the file extension <code class="filename">.stp</code>, and 30 SystemTap scripts use the file extension <code class="filename">.stp</code>, and
31 contains probes written in the following format: 31 contains probes written in the following format:
32 </div><pre class="screen">probe <em class="replaceable">event</em> {<em class="replaceable">statements</em>}</pre><div class="para"> 32 </div><pre class="screen">probe <em class="replaceable">event</em> {<em class="replaceable">statements</em>}</pre><div class="para">
@@ -34,7 +34,7 @@
34 by a comma (<code class="command">,</code>). If multiple events are specified in a 34 by a comma (<code class="command">,</code>). If multiple events are specified in a
35 single probe, SystemTap will execute the handler when any of the specified 35 single probe, SystemTap will execute the handler when any of the specified
36 events occur. 36 events occur.
37 </div><a id="idm140217031934640" class="indexterm"></a><a id="idm140217031936592" class="indexterm"></a><a id="idm140217031943552" class="indexterm"></a><div class="para"> 37 </div><a id="idm47006117682944" class="indexterm"></a><a id="idm47006117685728" class="indexterm"></a><a id="idm47006117687712" class="indexterm"></a><div class="para">
38 Each probe has a corresponding <em class="firstterm">statement block</em>. This statement block is 38 Each probe has a corresponding <em class="firstterm">statement block</em>. This statement block is
39 enclosed in braces (<code class="command">{ }</code>) and contains the statements to be executed per event. 39 enclosed in braces (<code class="command">{ }</code>) and contains the statements to be executed per event.
40 SystemTap executes these statements in sequence; special separators or 40 SystemTap executes these statements in sequence; special separators or
@@ -42,7 +42,7 @@
42 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para"> 42 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><div class="para">
43 Statement blocks in SystemTap scripts follow the same syntax and semantics as the C 43 Statement blocks in SystemTap scripts follow the same syntax and semantics as the C
44 programming language. A statement block can be nested within another statement block. 44 programming language. A statement block can be nested within another statement block.
45 </div></div></div><a id="idm140217031945328" class="indexterm"></a><a id="idm140217031947104" class="indexterm"></a><a id="idm140217031948880" class="indexterm"></a><div class="para"> 45 </div></div></div><a id="idm47006117694880" class="indexterm"></a><a id="idm47006117696800" class="indexterm"></a><a id="idm47006117698720" class="indexterm"></a><div class="para">
46 SystemTap allows you to write functions to factor out code to be used by a 46 SystemTap allows you to write functions to factor out code to be used by a
47 number of probes. Thus, rather than repeatedly writing the same 47 number of probes. Thus, rather than repeatedly writing the same
48 series of statements in multiple probes, you can just place the instructions 48 series of statements in multiple probes, you can just place the instructions
@@ -61,16 +61,16 @@ probe <em class="replaceable">event</em> {<em class="replaceable">function_name<
61 each section therein provides a detailed explanation of the script, its 61 each section therein provides a detailed explanation of the script, its
62 events, handlers, and expected output. 62 events, handlers, and expected output.
63 </div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-events"> 63 </div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-events">
64 ⁠</a>3.2.1. Event</h3></div></div></div><a id="idm140217031958352" class="indexterm"></a><div class="para"> 64 ⁠</a>3.2.1. Event</h3></div></div></div><a id="idm47006117709504" class="indexterm"></a><div class="para">
65 SystemTap events can be broadly classified into two types: 65 SystemTap events can be broadly classified into two types:
66 <em class="firstterm">synchronous</em> and 66 <em class="firstterm">synchronous</em> and
67 <em class="firstterm">asynchronous</em>. 67 <em class="firstterm">asynchronous</em>.
68 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Synchronous Events</div><a id="idm140217031962464" class="indexterm"></a><a id="idm140217031963232" class="indexterm"></a> 68 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Synchronous Events</div><a id="idm47006117713536" class="indexterm"></a><a id="idm47006117714768" class="indexterm"></a>
69 A <em class="firstterm">synchronous</em> event occurs when any process 69 A <em class="firstterm">synchronous</em> event occurs when any process
70 executes an instruction at a particular location in kernel 70 executes an instruction at a particular location in kernel
71 code. This gives other events a reference point from which more 71 code. This gives other events a reference point from which more
72 contextual data may be available. 72 contextual data may be available.
73 </div><a id="idm140217031966272" class="indexterm"></a><a id="idm140217031967664" class="indexterm"></a><div class="para">Examples of synchronous events include:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">syscall.<em class="replaceable">system_call</em></span></dt><dd><a id="idm140217031971312" class="indexterm"></a><a id="idm140217031975216" class="indexterm"></a><div class="para"> 73 </div><a id="idm47006117718304" class="indexterm"></a><a id="idm47006118065248" class="indexterm"></a><div class="para">Examples of synchronous events include:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">syscall.<em class="replaceable">system_call</em></span></dt><dd><a id="idm47006118067744" class="indexterm"></a><a id="idm47006118069952" class="indexterm"></a><div class="para">
74 The entry to the system call 74 The entry to the system call
75 <em class="replaceable">system_call</em>. If the exit from a syscall 75 <em class="replaceable">system_call</em>. If the exit from a syscall
76 is desired, appending a <code class="command">.return</code> to the event 76 is desired, appending a <code class="command">.return</code> to the event
@@ -78,12 +78,12 @@ probe <em class="replaceable">event</em> {<em class="replaceable">function_name<
78 the entry and exit of the system call <code class="command">close</code>, use 78 the entry and exit of the system call <code class="command">close</code>, use
79 <code class="command">syscall.close</code> and 79 <code class="command">syscall.close</code> and
80 <code class="command">syscall.close.return</code> respectively. 80 <code class="command">syscall.close.return</code> respectively.
81 </div></dd><dt><span class="term">vfs.<em class="replaceable">file_operation</em></span></dt><dd><a id="idm140217031980432" class="indexterm"></a><a id="idm140217031983856" class="indexterm"></a><div class="para"> 81 </div></dd><dt><span class="term">vfs.<em class="replaceable">file_operation</em></span></dt><dd><a id="idm47006118079024" class="indexterm"></a><a id="idm47006118079520" class="indexterm"></a><div class="para">
82 The entry to the <em class="replaceable">file_operation</em> event for 82 The entry to the <em class="replaceable">file_operation</em> event for
83 Virtual File System (VFS). Similar to <code class="command">syscall</code> 83 Virtual File System (VFS). Similar to <code class="command">syscall</code>
84 event, appending a <code class="command">.return</code> to the event monitors 84 event, appending a <code class="command">.return</code> to the event monitors
85 the exit of the <em class="replaceable">file_operation</em> operation. 85 the exit of the <em class="replaceable">file_operation</em> operation.
86 </div></dd><dt><span class="term">kernel.function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm140217031988992" class="indexterm"></a><a id="idm140217031991072" class="indexterm"></a><div class="para"> 86 </div></dd><dt><span class="term">kernel.function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47006118086080" class="indexterm"></a><a id="idm47006118089744" class="indexterm"></a><div class="para">
87 The entry to the kernel function 87 The entry to the kernel function
88 <em class="replaceable">function</em>. For example, 88 <em class="replaceable">function</em>. For example,
89 <code class="command">kernel.function("sys_open")</code> refers to the "event" 89 <code class="command">kernel.function("sys_open")</code> refers to the "event"
@@ -93,7 +93,7 @@ probe <em class="replaceable">event</em> {<em class="replaceable">function_name<
93 <code class="command">sys_open</code>, append the <code class="command">return</code> 93 <code class="command">sys_open</code>, append the <code class="command">return</code>
94 string to the event statement; 94 string to the event statement;
95 that is, <code class="command">kernel.function("sys_open").return</code>. 95 that is, <code class="command">kernel.function("sys_open").return</code>.
96 </div><a id="idm140217031997952" class="indexterm"></a><a id="idm140217031999344" class="indexterm"></a><a id="idm140217032000608" class="indexterm"></a><div class="para"> 96 </div><a id="idm47006118096720" class="indexterm"></a><a id="idm47006118098224" class="indexterm"></a><a id="idm47006118099568" class="indexterm"></a><div class="para">
97 When defining probe events, you can use asterisk (<code class="literal">*</code>) 97 When defining probe events, you can use asterisk (<code class="literal">*</code>)
98 for wildcards. You can also trace the entry or exit of a function in 98 for wildcards. You can also trace the entry or exit of a function in
99 a kernel source file. Consider the following example: 99 a kernel source file. Consider the following example:
@@ -106,7 +106,7 @@ probe kernel.function("*@net/socket.c").return { }</pre></div></div><div class="
106 exit of all those functions. Note that in this example, 106 exit of all those functions. Note that in this example,
107 there are no statements in the handler; 107 there are no statements in the handler;
108 as such, no information will be collected or displayed. 108 as such, no information will be collected or displayed.
109 </div></dd><dt><span class="term">kernel.trace("<em class="replaceable">tracepoint</em>")</span></dt><dd><a id="idm140217032007680" class="indexterm"></a><a id="idm140217032008192" class="indexterm"></a><a id="idm140217032010480" class="indexterm"></a><div class="para"> 109 </div></dd><dt><span class="term">kernel.trace("<em class="replaceable">tracepoint</em>")</span></dt><dd><a id="idm47006118107552" class="indexterm"></a><a id="idm47006118108496" class="indexterm"></a><a id="idm47006118110512" class="indexterm"></a><div class="para">
110 The static probe for <em class="replaceable">tracepoint</em>. 110 The static probe for <em class="replaceable">tracepoint</em>.
111 Recent kernels (2.6.30 and newer) 111 Recent kernels (2.6.30 and newer)
112 include instrumentation for specific events in the kernel. These 112 include instrumentation for specific events in the kernel. These
@@ -114,7 +114,7 @@ probe kernel.function("*@net/socket.c").return { }</pre></div></div><div class="
114 tracepoint available in systemtap is 114 tracepoint available in systemtap is
115 <code class="command">kernel.trace("kfree_skb")</code> which indicates each 115 <code class="command">kernel.trace("kfree_skb")</code> which indicates each
116 time a network buffer is freed in the kernel. 116 time a network buffer is freed in the kernel.
117 </div></dd><dt><span class="term">module("<em class="replaceable">module</em>").function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm140217032015808" class="indexterm"></a><a id="idm140217032020416" class="indexterm"></a><div class="para">Allows you to probe functions within modules. For example:</div><div class="example"><a id="eventsmodules"> 117 </div></dd><dt><span class="term">module("<em class="replaceable">module</em>").function("<em class="replaceable">function</em>")</span></dt><dd><a id="idm47006118117232" class="indexterm"></a><a id="idm47006118119648" class="indexterm"></a><div class="para">Allows you to probe functions within modules. For example:</div><div class="example"><a id="eventsmodules">
118 ⁠</a><p class="title"><strong>Example 3.2. moduleprobe.stp</strong></p><div class="example-contents"><pre class="programlisting">probe module("ext3").function("*") { } 118 ⁠</a><p class="title"><strong>Example 3.2. moduleprobe.stp</strong></p><div class="example-contents"><pre class="programlisting">probe module("ext3").function("*") { }
119probe module("ext3").function("*").return { }</pre></div></div><div class="para"> 119probe module("ext3").function("*").return { }</pre></div></div><div class="para">
120 The first probe in <a class="xref" href="scripts.html#eventsmodules">Example 3.2, “moduleprobe.stp”</a> 120 The first probe in <a class="xref" href="scripts.html#eventsmodules">Example 3.2, “moduleprobe.stp”</a>
@@ -128,14 +128,14 @@ probe module("ext3").function("*").return { }</pre></div></div><div class="para"
128 data (as in <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>). 128 data (as in <a class="xref" href="scripts.html#wildcards">Example 3.1, “wildcards.stp”</a>).
129 </div><div class="para"> 129 </div><div class="para">
130 A system's kernel modules are typically located in <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em></code>, where <em class="replaceable">kernel_version</em> refers to the currently loaded kernel version. Modules use the file name extension <code class="filename">.ko</code>. 130 A system's kernel modules are typically located in <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em></code>, where <em class="replaceable">kernel_version</em> refers to the currently loaded kernel version. Modules use the file name extension <code class="filename">.ko</code>.
131 </div></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Asynchronous Events</div><a id="idm140217032029920" class="indexterm"></a><a id="idm140217032031312" class="indexterm"></a> 131 </div></dd></dl></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">Asynchronous Events</div><a id="idm47006118132336" class="indexterm"></a><a id="idm47006118133600" class="indexterm"></a>
132 <em class="firstterm">Asynchronous</em> events are not tied to a particular 132 <em class="firstterm">Asynchronous</em> events are not tied to a particular
133 instruction or location in code. This family of probe points consists 133 instruction or location in code. This family of probe points consists
134 mainly of counters, timers, and similar constructs. 134 mainly of counters, timers, and similar constructs.
135 </div><div class="para">Examples of asynchronous events include:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">begin</span></dt><dd><a id="idm140217032036000" class="indexterm"></a><a id="idm140217032039216" class="indexterm"></a><div class="para"> 135 </div><div class="para">Examples of asynchronous events include:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">begin</span></dt><dd><a id="idm47006118138400" class="indexterm"></a><a id="idm47006118140640" class="indexterm"></a><div class="para">
136 The startup of a SystemTap session; that is, as soon as the SystemTap 136 The startup of a SystemTap session; that is, as soon as the SystemTap
137 script is run. 137 script is run.
138 </div></dd><dt><span class="term">end</span></dt><dd><a id="idm140217032040992" class="indexterm"></a><a id="idm140217032042896" class="indexterm"></a><div class="para">The end of a SystemTap session.</div></dd><dt><span class="term">timer events</span></dt><dd><a id="idm140217037681328" class="indexterm"></a><a id="idm140217037682336" class="indexterm"></a><div class="para"> 138 </div></dd><dt><span class="term">end</span></dt><dd><a id="idm47006118144368" class="indexterm"></a><a id="idm47006118146000" class="indexterm"></a><div class="para">The end of a SystemTap session.</div></dd><dt><span class="term">timer events</span></dt><dd><a id="idm47006118149568" class="indexterm"></a><a id="idm47006118152064" class="indexterm"></a><div class="para">
139 An event that specifies a handler to be executed periodically. 139 An event that specifies a handler to be executed periodically.
140 For example: 140 For example:
141 </div><div class="example"><a id="timer"> 141 </div><div class="example"><a id="timer">
diff --git a/SystemTap_Beginners_Guide/syscallsbyprocpidsect.html b/SystemTap_Beginners_Guide/syscallsbyprocpidsect.html
index b0be8392..15b84bc4 100644
--- a/SystemTap_Beginners_Guide/syscallsbyprocpidsect.html
+++ b/SystemTap_Beginners_Guide/syscallsbyprocpidsect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.6. Tracking System Call Volume Per Process</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /><link rel="next" href="futexcontentionsect.html" title="5.4. Identifying Contended User-Space Locks" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="topsyssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="futexcontentionsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="syscallsbyprocpidsect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.6. Tracking System Call Volume Per Process</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /><link rel="next" href="futexcontentionsect.html" title="5.4. Identifying Contended User-Space Locks" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="topsyssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="futexcontentionsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="syscallsbyprocpidsect">
3 ⁠</a>5.3.6. Tracking System Call Volume Per Process</h3></div></div></div><a id="idm140217032501056" class="indexterm"></a><a id="idm140217035720464" class="indexterm"></a><a id="idm140217036475616" class="indexterm"></a><a id="idm140217038130240" class="indexterm"></a><div class="para"> 3 ⁠</a>5.3.6. Tracking System Call Volume Per Process</h3></div></div></div><a id="idm47006122930912" class="indexterm"></a><a id="idm47006123516192" class="indexterm"></a><a id="idm47006129680784" class="indexterm"></a><a id="idm47006123583280" class="indexterm"></a><div class="para">
4 This section illustrates how to determine which processes 4 This section illustrates how to determine which processes
5 are performing the highest volume of system calls. In 5 are performing the highest volume of system calls. In
6 previous sections, we've described how to monitor the top system 6 previous sections, we've described how to monitor the top system
diff --git a/SystemTap_Beginners_Guide/systemtapscript-handler.html b/SystemTap_Beginners_Guide/systemtapscript-handler.html
index 1f56403f..bccba16f 100644
--- a/SystemTap_Beginners_Guide/systemtapscript-handler.html
+++ b/SystemTap_Beginners_Guide/systemtapscript-handler.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2.2. SystemTap Handler/Body</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="prev" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="next" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scripts.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scriptconstructions.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-handler"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.2.2. SystemTap Handler/Body</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="prev" href="scripts.html" title="3.2. SystemTap Scripts" /><link rel="next" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scripts.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scriptconstructions.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="systemtapscript-handler">
3 ⁠</a>3.2.2. SystemTap Handler/Body</h3></div></div></div><a id="idm140217037702976" class="indexterm"></a><div class="para"> Consider the following sample script: </div><div class="example"><a id="helloworld"> 3 ⁠</a>3.2.2. SystemTap Handler/Body</h3></div></div></div><a id="idm47006118894720" class="indexterm"></a><div class="para"> Consider the following sample script: </div><div class="example"><a id="helloworld">
4 ⁠</a><p class="title"><strong>Example 3.4. helloworld.stp</strong></p><div class="example-contents"><pre class="programlisting">probe begin 4 ⁠</a><p class="title"><strong>Example 3.4. helloworld.stp</strong></p><div class="example-contents"><pre class="programlisting">probe begin
5{ 5{
6 printf ("hello world\n") 6 printf ("hello world\n")
@@ -10,29 +10,29 @@
10 (that is, the start of the session) triggers the handler enclosed in 10 (that is, the start of the session) triggers the handler enclosed in
11 <code class="command">{ }</code>, which simply prints <code class="command">hello 11 <code class="command">{ }</code>, which simply prints <code class="command">hello
12 world</code> followed by a new-line, then exits. 12 world</code> followed by a new-line, then exits.
13 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm140217037709072" class="indexterm"></a><a id="idm140217037710832" class="indexterm"></a><div class="para"> 13 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47006118902224" class="indexterm"></a><a id="idm47006118904400" class="indexterm"></a><div class="para">
14 SystemTap scripts continue to run until the 14 SystemTap scripts continue to run until the
15 <code class="command">exit()</code> function executes. If the users wants to stop 15 <code class="command">exit()</code> function executes. If the users wants to stop
16 the execution of the script, it can interrupted manually with 16 the execution of the script, it can interrupted manually with
17 <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>. 17 <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>.
18 </div></div></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">printf ( ) Statements</div><a id="idm140217037716304" class="indexterm"></a> 18 </div></div></div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">printf ( ) Statements</div><a id="idm47006118909600" class="indexterm"></a>
19 The <code class="command">printf ()</code> statement is one of the simplest 19 The <code class="command">printf ()</code> statement is one of the simplest
20 functions for printing data. <code class="command">printf ()</code> can also be 20 functions for printing data. <code class="command">printf ()</code> can also be
21 used to display data using a wide variety of SystemTap functions in the 21 used to display data using a wide variety of SystemTap functions in the
22 following format: 22 following format:
23 </div><pre class="programlisting"> printf ("<em class="replaceable">format string</em>\n", <em class="replaceable">arguments</em>) 23 </div><pre class="programlisting"> printf ("<em class="replaceable">format string</em>\n", <em class="replaceable">arguments</em>)
24 </pre><a id="idm140217037721664" class="indexterm"></a><a id="idm140217037725008" class="indexterm"></a><div class="para"> 24 </pre><a id="idm47006118914784" class="indexterm"></a><a id="idm47006118916640" class="indexterm"></a><div class="para">
25 The <em class="replaceable">format string</em> specifies how 25 The <em class="replaceable">format string</em> specifies how
26 <em class="replaceable">arguments</em> should be printed. The format string 26 <em class="replaceable">arguments</em> should be printed. The format string
27 of <a class="xref" href="systemtapscript-handler.html#helloworld">Example 3.4, “helloworld.stp”</a> instructs SystemTap to print 27 of <a class="xref" href="systemtapscript-handler.html#helloworld">Example 3.4, “helloworld.stp”</a> instructs SystemTap to print
28 <code class="command">hello world</code>, and contains no format specifiers. 28 <code class="command">hello world</code>, and contains no format specifiers.
29 </div><a id="idm140217037727600" class="indexterm"></a><a id="idm140217037731088" class="indexterm"></a><div class="para"> 29 </div><a id="idm47006118920416" class="indexterm"></a><a id="idm47006118922160" class="indexterm"></a><div class="para">
30 You can use the format specifiers <code class="command">%s</code> (for strings) 30 You can use the format specifiers <code class="command">%s</code> (for strings)
31 and <code class="command">%d</code> (for numbers) in format strings, depending on 31 and <code class="command">%d</code> (for numbers) in format strings, depending on
32 your list of arguments. Format strings can have multiple format 32 your list of arguments. Format strings can have multiple format
33 specifiers, each matching a corresponding argument; multiple arguments 33 specifiers, each matching a corresponding argument; multiple arguments
34 are delimited by a comma (<code class="command">,</code>). 34 are delimited by a comma (<code class="command">,</code>).
35 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm140217037733888" class="indexterm"></a><a id="idm140217037735504" class="indexterm"></a><a id="idm140217037737904" class="indexterm"></a><div class="para">Semantically, the SystemTap <code class="command">printf</code> function is 35 </div><div xmlns:d="http://docbook.org/ns/docbook" class="note"><div class="admonition_header"><p><strong>Note</strong></p></div><div class="admonition"><a id="idm47006118926704" class="indexterm"></a><a id="idm47006118928320" class="indexterm"></a><a id="idm47006118930224" class="indexterm"></a><div class="para">Semantically, the SystemTap <code class="command">printf</code> function is
36 very similar to its C language counterpart. The aforementioned syntax 36 very similar to its C language counterpart. The aforementioned syntax
37 and format for SystemTap's <code class="command">printf</code> function is 37 and format for SystemTap's <code class="command">printf</code> function is
38 identical to that of the C-style <code class="command">printf</code>. 38 identical to that of the C-style <code class="command">printf</code>.
@@ -53,15 +53,15 @@ hald(2360) open
53df(3433) open 53df(3433) open
54df(3433) open 54df(3433) open
55df(3433) open 55df(3433) open
56hald(2360) open</pre><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">SystemTap Functions</div><a id="idm140217037776448" class="indexterm"></a><a id="idm140217037751248" class="indexterm"></a><a id="idm140217037752064" class="indexterm"></a> 56hald(2360) open</pre><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">SystemTap Functions</div><a id="idm47006118947792" class="indexterm"></a><a id="idm47006118943584" class="indexterm"></a><a id="idm47006118945120" class="indexterm"></a>
57 SystemTap supports a wide variety of functions that can be used as 57 SystemTap supports a wide variety of functions that can be used as
58 <code class="command">printf ()</code> arguments. <a class="xref" href="systemtapscript-handler.html#syscall-open">Example 3.5, “variables-in-printf-statements.stp”</a> 58 <code class="command">printf ()</code> arguments. <a class="xref" href="systemtapscript-handler.html#syscall-open">Example 3.5, “variables-in-printf-statements.stp”</a>
59 uses the SystemTap functions <code class="command">execname()</code> (name of the 59 uses the SystemTap functions <code class="command">execname()</code> (name of the
60 process that called a kernel function/performed a system call) and 60 process that called a kernel function/performed a system call) and
61 <code class="command">pid()</code> (current process ID). 61 <code class="command">pid()</code> (current process ID).
62 </div><div class="para">The following is a list of commonly-used SystemTap functions:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">tid()</span></dt><dd><a id="idm140217037760432" class="indexterm"></a><a id="idm140217037760928" class="indexterm"></a><a id="idm140217037763072" class="indexterm"></a><div class="para">The ID of the current thread.</div></dd><dt><span class="term">uid()</span></dt><dd><a id="idm140217037766928" class="indexterm"></a><a id="idm140217037769408" class="indexterm"></a><div class="para">The ID of the current user.</div></dd><dt><span class="term">cpu()</span></dt><dd><a id="idm140217037773344" class="indexterm"></a><a id="idm140217037775952" class="indexterm"></a><div class="para">The current CPU number.</div></dd><dt><span class="term">gettimeofday_s()</span></dt><dd><a id="idm140217037924672" class="indexterm"></a><a id="idm140217037927024" class="indexterm"></a><div class="para">The number of seconds since UNIX epoch (January 1, 1970).</div></dd><dt><span class="term">ctime()</span></dt><dd><a id="idm140217037931808" class="indexterm"></a><a id="idm140217037934240" class="indexterm"></a><div class="para"> 62 </div><div class="para">The following is a list of commonly-used SystemTap functions:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">tid()</span></dt><dd><a id="idm47006118952016" class="indexterm"></a><a id="idm47006118953744" class="indexterm"></a><a id="idm47006120938576" class="indexterm"></a><div class="para">The ID of the current thread.</div></dd><dt><span class="term">uid()</span></dt><dd><a id="idm47006120942624" class="indexterm"></a><a id="idm47006120944944" class="indexterm"></a><div class="para">The ID of the current user.</div></dd><dt><span class="term">cpu()</span></dt><dd><a id="idm47006120948896" class="indexterm"></a><a id="idm47006120952192" class="indexterm"></a><div class="para">The current CPU number.</div></dd><dt><span class="term">gettimeofday_s()</span></dt><dd><a id="idm47006120955680" class="indexterm"></a><a id="idm47006120958032" class="indexterm"></a><div class="para">The number of seconds since UNIX epoch (January 1, 1970).</div></dd><dt><span class="term">ctime()</span></dt><dd><a id="idm47006120962816" class="indexterm"></a><a id="idm47006120965984" class="indexterm"></a><div class="para">
63 Convert number of seconds since UNIX epoch to date. 63 Convert number of seconds since UNIX epoch to date.
64 </div></dd><dt><span class="term">pp()</span></dt><dd><a id="idm140217037939248" class="indexterm"></a><a id="idm140217037942176" class="indexterm"></a><div class="para">A string describing the probe point currently being handled.</div></dd><dt><span class="term">thread_indent()</span></dt><dd><a id="idm140217037946288" class="indexterm"></a><a id="idm140217037950816" class="indexterm"></a><div class="para"> 64 </div></dd><dt><span class="term">pp()</span></dt><dd><a id="idm47006120971120" class="indexterm"></a><a id="idm47006120973184" class="indexterm"></a><div class="para">A string describing the probe point currently being handled.</div></dd><dt><span class="term">thread_indent()</span></dt><dd><a id="idm47006123706832" class="indexterm"></a><a id="idm47006123708896" class="indexterm"></a><div class="para">
65 This particular function is quite useful in providing you with a way 65 This particular function is quite useful in providing you with a way
66 to better organize your print results. The function takes one 66 to better organize your print results. The function takes one
67 argument, an indentation delta, which indicates how many 67 argument, an indentation delta, which indicates how many
@@ -112,10 +112,10 @@ probe kernel.function("*@net/socket.c").return
1124699 ftp(7223): &lt;- sock_map_file 1124699 ftp(7223): &lt;- sock_map_file
1134715 ftp(7223): &lt;- sock_map_fd 1134715 ftp(7223): &lt;- sock_map_fd
1144732 ftp(7223): &lt;- sys_socket 1144732 ftp(7223): &lt;- sys_socket
1154775 ftp(7223): &lt;- sys_socketcall</pre><div class="para">This sample output contains the following information:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">The time (in microseconds) since the initial <code class="command">thread_indent()</code> call for the thread (included in the string from <code class="command">thread_indent()</code>).</div></li><li class="listitem"><div class="para">The process name (and its corresponding ID) that made the function call (included in the string from <code class="command">thread_indent()</code>).</div></li><li class="listitem"><div class="para">An arrow signifying whether the call was an entry (<code class="computeroutput">&lt;-</code>) or an exit (<code class="computeroutput">-&gt;</code>); the indentations help you match specific function call entries with their corresponding exits.</div></li><li class="listitem"><div class="para">The name of the function called by the process.</div></li></ul></div></dd><dt><span class="term">name</span></dt><dd><a id="idm140217037965952" class="indexterm"></a><a id="idm140217037967456" class="indexterm"></a><a id="idm140217037968960" class="indexterm"></a><div class="para">Identifies the name of a specific system call. This variable can 1154775 ftp(7223): &lt;- sys_socketcall</pre><div class="para">This sample output contains the following information:</div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para">The time (in microseconds) since the initial <code class="command">thread_indent()</code> call for the thread (included in the string from <code class="command">thread_indent()</code>).</div></li><li class="listitem"><div class="para">The process name (and its corresponding ID) that made the function call (included in the string from <code class="command">thread_indent()</code>).</div></li><li class="listitem"><div class="para">An arrow signifying whether the call was an entry (<code class="computeroutput">&lt;-</code>) or an exit (<code class="computeroutput">-&gt;</code>); the indentations help you match specific function call entries with their corresponding exits.</div></li><li class="listitem"><div class="para">The name of the function called by the process.</div></li></ul></div></dd><dt><span class="term">name</span></dt><dd><a id="idm47006124250368" class="indexterm"></a><a id="idm47006124251872" class="indexterm"></a><a id="idm47006119159904" class="indexterm"></a><div class="para">Identifies the name of a specific system call. This variable can
116 only be used in probes that use the event 116 only be used in probes that use the event
117 <code class="command">syscall.<em class="replaceable">system_call</em></code>. 117 <code class="command">syscall.<em class="replaceable">system_call</em></code>.
118 </div></dd><dt><span class="term">target()</span></dt><dd><a id="idm140217037973792" class="indexterm"></a><a id="idm140217038524416" class="indexterm"></a><div class="para"> 118 </div></dd><dt><span class="term">target()</span></dt><dd><a id="idm47006119164432" class="indexterm"></a><a id="idm47006123249616" class="indexterm"></a><div class="para">
119 Used in conjunction with <code class="command">stap 119 Used in conjunction with <code class="command">stap
120 <em class="replaceable">script</em> -x <em class="replaceable">process 120 <em class="replaceable">script</em> -x <em class="replaceable">process
121 ID</em></code> or <code class="command">stap 121 ID</em></code> or <code class="command">stap
diff --git a/SystemTap_Beginners_Guide/targetavailable.html b/SystemTap_Beginners_Guide/targetavailable.html
index 1cafd4c9..dd05e4e9 100644
--- a/SystemTap_Beginners_Guide/targetavailable.html
+++ b/SystemTap_Beginners_Guide/targetavailable.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.3. Checking Target Variable Availability</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="typecasting.html" title="3.3.2.2. Typecasting" /><link rel="next" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="typecasting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="handlerconditionalstatements.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetavailable"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.3. Checking Target Variable Availability</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="typecasting.html" title="3.3.2.2. Typecasting" /><link rel="next" href="handlerconditionalstatements.html" title="3.3.3. Conditional Statements" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="typecasting.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="handlerconditionalstatements.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetavailable">
3 ⁠</a>3.3.2.3. Checking Target Variable Availability</h4></div></div></div><a id="idm140217034462576" class="indexterm"></a><div class="para"> 3 ⁠</a>3.3.2.3. Checking Target Variable Availability</h4></div></div></div><a id="idm47006123701568" class="indexterm"></a><div class="para">
4 As code evolves the target variables available may change. 4 As code evolves the target variables available may change.
5 The <code class="command">@defined</code> makes it easier to handle 5 The <code class="command">@defined</code> makes it easier to handle
6 those variations in the available target variables. 6 those variations in the available target variables.
diff --git a/SystemTap_Beginners_Guide/targetvariables.html b/SystemTap_Beginners_Guide/targetvariables.html
index f4256c71..906c2b20 100644
--- a/SystemTap_Beginners_Guide/targetvariables.html
+++ b/SystemTap_Beginners_Guide/targetvariables.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2. Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="next" href="typecasting.html" title="3.3.2.2. Typecasting" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scriptconstructions.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="typecasting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="targetvariables"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2. Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="prev" href="scriptconstructions.html" title="3.3. Basic SystemTap Handler Constructs" /><link rel="next" href="typecasting.html" title="3.3.2.2. Typecasting" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="scriptconstructions.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="typecasting.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="targetvariables">
3 ⁠</a>3.3.2. Target Variables</h3></div></div></div><a id="idm140217038404560" class="indexterm"></a><a id="idm140217036847808" class="indexterm"></a><div class="para"> 3 ⁠</a>3.3.2. Target Variables</h3></div></div></div><a id="idm47006125861280" class="indexterm"></a><a id="idm47006118763680" class="indexterm"></a><div class="para">
4The probe events that map to actual locations in the code (for example 4The probe events that map to actual locations in the code (for example
5<code class="command">kernel.function("<em class="replaceable">function</em>")</code> and 5<code class="command">kernel.function("<em class="replaceable">function</em>")</code> and
6<code class="command">kernel.statement("<em class="replaceable">statement</em>")</code>) 6<code class="command">kernel.statement("<em class="replaceable">statement</em>")</code>)
@@ -69,7 +69,7 @@ Obtain the string at <em class="replaceable">address</em> from kernel memory.
69Obtain the string at <em class="replaceable">address</em> from the kernel memory 69Obtain the string at <em class="replaceable">address</em> from the kernel memory
70and limits the string to <em class="replaceable">n</em> bytes. 70and limits the string to <em class="replaceable">n</em> bytes.
71</div></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetprettyprinting"> 71</div></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="targetprettyprinting">
72 ⁠</a>3.3.2.1. Pretty Printing Target Variables</h4></div></div></div><a id="idm140217035420256" class="indexterm"></a><div class="para"> 72 ⁠</a>3.3.2.1. Pretty Printing Target Variables</h4></div></div></div><a id="idm47006123146656" class="indexterm"></a><div class="para">
73 SystemTap scripts are often used to observe what is happening within 73 SystemTap scripts are often used to observe what is happening within
74 the code. 74 the code.
75 In many cases just printing the values of the various context variables 75 In many cases just printing the values of the various context variables
diff --git a/SystemTap_Beginners_Guide/threadtimessect.html b/SystemTap_Beginners_Guide/threadtimessect.html
index 0b9dfbbd..dffb99bb 100644
--- a/SystemTap_Beginners_Guide/threadtimessect.html
+++ b/SystemTap_Beginners_Guide/threadtimessect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.3. Determining Time Spent in Kernel and User Space</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="paracallgraph.html" title="5.3.2. Call Graph Tracing" /><link rel="next" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="paracallgraph.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="timeoutssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="threadtimessect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.3. Determining Time Spent in Kernel and User Space</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="paracallgraph.html" title="5.3.2. Call Graph Tracing" /><link rel="next" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="paracallgraph.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="timeoutssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="threadtimessect">
3 ⁠</a>5.3.3. Determining Time Spent in Kernel and User Space</h3></div></div></div><a id="idm140217040389952" class="indexterm"></a><a id="idm140217037918784" class="indexterm"></a><a id="idm140217032971600" class="indexterm"></a><a id="idm140217039926448" class="indexterm"></a><a id="idm140217039661952" class="indexterm"></a><a id="idm140217034422576" class="indexterm"></a><div class="para">This section illustrates how to determine the amount of time any given thread is spending in either kernel or user-space.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">thread-times.stp</div> 3 ⁠</a>5.3.3. Determining Time Spent in Kernel and User Space</h3></div></div></div><a id="idm47006125079824" class="indexterm"></a><a id="idm47006119147744" class="indexterm"></a><a id="idm47006121468384" class="indexterm"></a><a id="idm47006117322064" class="indexterm"></a><a id="idm47006121546576" class="indexterm"></a><a id="idm47006120130352" class="indexterm"></a><div class="para">This section illustrates how to determine the amount of time any given thread is spending in either kernel or user-space.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">thread-times.stp</div>
4<pre class="programlisting">#! /usr/bin/env stap 4<pre class="programlisting">#! /usr/bin/env stap
5 5
6probe perf.sw.cpu_clock!, timer.profile { 6probe perf.sw.cpu_clock!, timer.profile {
@@ -37,7 +37,7 @@ probe timer.s(5), end {
37 delete tids 37 delete tids
38} 38}
39</pre> 39</pre>
40</div><a id="idm140217033398560" class="indexterm"></a><a id="idm140217040416624" class="indexterm"></a><a id="idm140217044413728" class="indexterm"></a><div class="para"><a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a> lists the top 20 processes currently taking up CPU time within a 5-second sample, along with the total number of CPU ticks made during the sample. The output of this script also notes the percentage of CPU time each process used, as well as whether that time was spent in kernel space or user space. </div><div class="para"><a class="xref" href="threadtimessect.html#threadtimesoutput">Example 5.15, “thread-times.stp Sample Output”</a> contains a 5-second sample of the output for <a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a>:</div><div class="example"><a id="threadtimesoutput"> 40</div><a id="idm47006126385616" class="indexterm"></a><a id="idm47006122898416" class="indexterm"></a><a id="idm47006128476480" class="indexterm"></a><div class="para"><a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a> lists the top 20 processes currently taking up CPU time within a 5-second sample, along with the total number of CPU ticks made during the sample. The output of this script also notes the percentage of CPU time each process used, as well as whether that time was spent in kernel space or user space. </div><div class="para"><a class="xref" href="threadtimessect.html#threadtimesoutput">Example 5.15, “thread-times.stp Sample Output”</a> contains a 5-second sample of the output for <a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a>:</div><div class="example"><a id="threadtimesoutput">
41 ⁠</a><p class="title"><strong>Example 5.15. <a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen"> tid %user %kernel (of 20002 ticks) 41 ⁠</a><p class="title"><strong>Example 5.15. <a class="xref" href="threadtimessect.html#threadtimes">thread-times.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen"> tid %user %kernel (of 20002 ticks)
42 0 0.00% 87.88% 42 0 0.00% 87.88%
4332169 5.24% 0.03% 4332169 5.24% 0.03%
diff --git a/SystemTap_Beginners_Guide/timeoutssect.html b/SystemTap_Beginners_Guide/timeoutssect.html
index 78b56ece..174ef67d 100644
--- a/SystemTap_Beginners_Guide/timeoutssect.html
+++ b/SystemTap_Beginners_Guide/timeoutssect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.4. Monitoring Polling Applications</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /><link rel="next" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="threadtimessect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="topsyssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="timeoutssect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.4. Monitoring Polling Applications</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="threadtimessect.html" title="5.3.3. Determining Time Spent in Kernel and User Space" /><link rel="next" href="topsyssect.html" title="5.3.5. Tracking Most Frequently Used System Calls" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="threadtimessect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="topsyssect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="timeoutssect">
3 ⁠</a>5.3.4. Monitoring Polling Applications</h3></div></div></div><a id="idm140217032561392" class="indexterm"></a><a id="idm140217034260992" class="indexterm"></a><a id="idm140217036558832" class="indexterm"></a><a id="idm140217043144704" class="indexterm"></a><div class="para"> 3 ⁠</a>5.3.4. Monitoring Polling Applications</h3></div></div></div><a id="idm47006125928784" class="indexterm"></a><a id="idm47006120521200" class="indexterm"></a><a id="idm47006119729264" class="indexterm"></a><a id="idm47006121542656" class="indexterm"></a><div class="para">
4 This section describes how to identify and monitor which applications are polling. Doing so allows you to track 4 This section describes how to identify and monitor which applications are polling. Doing so allows you to track
5 unnecessary or excessive polling, which can help you pinpoint areas for improvement in terms of CPU usage 5 unnecessary or excessive polling, which can help you pinpoint areas for improvement in terms of CPU usage
6 and power savings. 6 and power savings.
@@ -105,7 +105,7 @@ probe timer.s(1) {
105 of the following system calls completed 105 of the following system calls completed
106 due to time expiring rather than due to an actual event 106 due to time expiring rather than due to an actual event
107 occurring: 107 occurring:
108 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><code class="command">poll</code></div></li><li class="listitem"><div class="para"><code class="command">select</code></div></li><li class="listitem"><div class="para"><code class="command">epoll</code></div></li><li class="listitem"><div class="para"><code class="command">itimer</code></div></li><li class="listitem"><div class="para"><code class="command">futex</code></div></li><li class="listitem"><div class="para"><code class="command">nanosleep</code></div></li><li class="listitem"><div class="para"><code class="command">signal</code></div></li></ul></div><a id="idm140217034287952" class="indexterm"></a><a id="idm140217042699536" class="indexterm"></a><a id="idm140217035250592" class="indexterm"></a><div class="example"><a id="timeoutsoutput"> 108 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><code class="command">poll</code></div></li><li class="listitem"><div class="para"><code class="command">select</code></div></li><li class="listitem"><div class="para"><code class="command">epoll</code></div></li><li class="listitem"><div class="para"><code class="command">itimer</code></div></li><li class="listitem"><div class="para"><code class="command">futex</code></div></li><li class="listitem"><div class="para"><code class="command">nanosleep</code></div></li><li class="listitem"><div class="para"><code class="command">signal</code></div></li></ul></div><a id="idm47006129265504" class="indexterm"></a><a id="idm47006120640176" class="indexterm"></a><a id="idm47006125169120" class="indexterm"></a><div class="example"><a id="timeoutsoutput">
109 ⁠</a><p class="title"><strong>Example 5.16. <a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen"> uid | poll select epoll itimer futex nanosle signal| process 109 ⁠</a><p class="title"><strong>Example 5.16. <a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen"> uid | poll select epoll itimer futex nanosle signal| process
11028937 | 148793 0 0 4727 37288 0 0| firefox 11028937 | 148793 0 0 4727 37288 0 0| firefox
11122945 | 0 56949 0 1 0 0 0| scim-bridge 11122945 | 0 56949 0 1 0 0 0| scim-bridge
diff --git a/SystemTap_Beginners_Guide/topsyssect.html b/SystemTap_Beginners_Guide/topsyssect.html
index 92182ccb..8704792c 100644
--- a/SystemTap_Beginners_Guide/topsyssect.html
+++ b/SystemTap_Beginners_Guide/topsyssect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.5. Tracking Most Frequently Used System Calls</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /><link rel="next" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="timeoutssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="syscallsbyprocpidsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="topsyssect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.3.5. Tracking Most Frequently Used System Calls</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-profiling.html" title="5.3. Profiling" /><link rel="prev" href="timeoutssect.html" title="5.3.4. Monitoring Polling Applications" /><link rel="next" href="syscallsbyprocpidsect.html" title="5.3.6. Tracking System Call Volume Per Process" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="timeoutssect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="syscallsbyprocpidsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="topsyssect">
3 ⁠</a>5.3.5. Tracking Most Frequently Used System Calls</h3></div></div></div><a id="idm140217039287904" class="indexterm"></a><a id="idm140217039549376" class="indexterm"></a><a id="idm140217044500880" class="indexterm"></a><a id="idm140217041834624" class="indexterm"></a><div class="para"> 3 ⁠</a>5.3.5. Tracking Most Frequently Used System Calls</h3></div></div></div><a id="idm47006123050336" class="indexterm"></a><a id="idm47006120113744" class="indexterm"></a><a id="idm47006130215536" class="indexterm"></a><a id="idm47006123280448" class="indexterm"></a><div class="para">
4 <a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> from <a class="xref" href="timeoutssect.html">Section 5.3.4, “Monitoring Polling Applications”</a> 4 <a class="xref" href="timeoutssect.html#timeouts">timeout.stp</a> from <a class="xref" href="timeoutssect.html">Section 5.3.4, “Monitoring Polling Applications”</a>
5 helps you identify which applications 5 helps you identify which applications
6 are polling by examining a small subset of system calls ( 6 are polling by examining a small subset of system calls (
@@ -47,7 +47,7 @@ probe timer.s(5) {
47</div><div class="para"> 47</div><div class="para">
48 <a class="xref" href="topsyssect.html#topsys">topsys.stp</a> lists the top 20 system calls used by the system per 5-second interval. It also lists 48 <a class="xref" href="topsyssect.html#topsys">topsys.stp</a> lists the top 20 system calls used by the system per 5-second interval. It also lists
49 how many times each system call was used during that period. Refer to <a class="xref" href="topsyssect.html#topsysoutput">Example 5.17, “topsys.stp Sample Output”</a> for a sample output. 49 how many times each system call was used during that period. Refer to <a class="xref" href="topsyssect.html#topsysoutput">Example 5.17, “topsys.stp Sample Output”</a> for a sample output.
50</div><a id="idm140217034479168" class="indexterm"></a><a id="idm140217043733232" class="indexterm"></a><a id="idm140217033349616" class="indexterm"></a><div class="example"><a id="topsysoutput"> 50</div><a id="idm47006123591664" class="indexterm"></a><a id="idm47006125954384" class="indexterm"></a><a id="idm47006117480960" class="indexterm"></a><div class="example"><a id="topsysoutput">
51 ⁠</a><p class="title"><strong>Example 5.17. <a class="xref" href="topsyssect.html#topsys">topsys.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">-------------------------------------------------------------- 51 ⁠</a><p class="title"><strong>Example 5.17. <a class="xref" href="topsyssect.html#topsys">topsys.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">--------------------------------------------------------------
52 SYSCALL COUNT 52 SYSCALL COUNT
53 gettimeofday 1857 53 gettimeofday 1857
diff --git a/SystemTap_Beginners_Guide/traceio2sect.html b/SystemTap_Beginners_Guide/traceio2sect.html
index f5d4bfa4..94e056ad 100644
--- a/SystemTap_Beginners_Guide/traceio2sect.html
+++ b/SystemTap_Beginners_Guide/traceio2sect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.4. I/O Monitoring (By Device)</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /><link rel="next" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceiosect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatchsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="traceio2sect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.4. I/O Monitoring (By Device)</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="traceiosect.html" title="5.2.3. Track Cumulative IO" /><link rel="next" href="inodewatchsect.html" title="5.2.5. Monitoring Reads and Writes to a File" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="traceiosect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="inodewatchsect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="traceio2sect">
3 ⁠</a>5.2.4. I/O Monitoring (By Device)</h3></div></div></div><a id="idm140217039937728" class="indexterm"></a><a id="idm140217039599392" class="indexterm"></a><a id="idm140217038111216" class="indexterm"></a><a id="idm140217033060848" class="indexterm"></a><a id="idm140217042960480" class="indexterm"></a><div class="para"> 3 ⁠</a>5.2.4. I/O Monitoring (By Device)</h3></div></div></div><a id="idm47006127247264" class="indexterm"></a><a id="idm47006125329568" class="indexterm"></a><a id="idm47006129127216" class="indexterm"></a><a id="idm47006126372544" class="indexterm"></a><a id="idm47006120174752" class="indexterm"></a><div class="para">
4 This section describes how to monitor I/O activity on a specific device. 4 This section describes how to monitor I/O activity on a specific device.
5 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio2.stp</div> 5 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio2.stp</div>
6<pre class="programlisting">#! /usr/bin/env stap 6<pre class="programlisting">#! /usr/bin/env stap
@@ -23,7 +23,7 @@ probe vfs.write, vfs.read
23 execname(), pid(), ppfunc(), dev) 23 execname(), pid(), ppfunc(), dev)
24} 24}
25</pre> 25</pre>
26</div><a id="idm140217040418320" class="indexterm"></a><a id="idm140217034665440" class="indexterm"></a><a id="idm140217043143104" class="indexterm"></a><a id="idm140217034431008" class="indexterm"></a><a id="idm140217038095008" class="indexterm"></a><a id="idm140217038665008" class="indexterm"></a><div class="para"><a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> takes 1 argument: the whole device number. To get this number, use <code class="command">stat -c "0x%D" <em class="replaceable">directory</em></code>, where <code class="command"><em class="replaceable">directory</em></code> is located in the device to be monitored.</div><a id="idm140217038994192" class="indexterm"></a><a id="idm140217037124112" class="indexterm"></a><a id="idm140217040219264" class="indexterm"></a><div class="para">The <code class="command">usrdev2kerndev()</code> function converts the whole device number into the format understood by the kernel. The output produced by <code class="command">usrdev2kerndev()</code> is used in conjunction with the <code class="command">MKDEV()</code>, <code class="command">MINOR()</code>, and <code class="command">MAJOR()</code> functions to determine the major and minor numbers of a specific device.</div><div class="para">The output of <a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> includes the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), and the kernel device number.</div><div class="para">The following example is an excerpt from the full output of <code class="command">stap traceio2.stp 0x805</code>, where <code class="literal">0x805</code> is the whole device number of <code class="filename">/home</code>. <code class="filename">/home</code> resides in <code class="filename">/dev/sda5</code>, which is the device we wish to monitor.</div><div class="example"><a id="traceio2output"> 26</div><a id="idm47006121001904" class="indexterm"></a><a id="idm47006117542368" class="indexterm"></a><a id="idm47006124871584" class="indexterm"></a><a id="idm47006120322640" class="indexterm"></a><a id="idm47006124328480" class="indexterm"></a><a id="idm47006119997344" class="indexterm"></a><div class="para"><a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> takes 1 argument: the whole device number. To get this number, use <code class="command">stat -c "0x%D" <em class="replaceable">directory</em></code>, where <code class="command"><em class="replaceable">directory</em></code> is located in the device to be monitored.</div><a id="idm47006122847472" class="indexterm"></a><a id="idm47006124753376" class="indexterm"></a><a id="idm47006120369568" class="indexterm"></a><div class="para">The <code class="command">usrdev2kerndev()</code> function converts the whole device number into the format understood by the kernel. The output produced by <code class="command">usrdev2kerndev()</code> is used in conjunction with the <code class="command">MKDEV()</code>, <code class="command">MINOR()</code>, and <code class="command">MAJOR()</code> functions to determine the major and minor numbers of a specific device.</div><div class="para">The output of <a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> includes the name and ID of any process performing a read/write, the function it is performing (that is, <code class="command">vfs_read</code> or <code class="command">vfs_write</code>), and the kernel device number.</div><div class="para">The following example is an excerpt from the full output of <code class="command">stap traceio2.stp 0x805</code>, where <code class="literal">0x805</code> is the whole device number of <code class="filename">/home</code>. <code class="filename">/home</code> resides in <code class="filename">/dev/sda5</code>, which is the device we wish to monitor.</div><div class="example"><a id="traceio2output">
27 ⁠</a><p class="title"><strong>Example 5.9. <a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...] 27 ⁠</a><p class="title"><strong>Example 5.9. <a class="xref" href="traceio2sect.html#traceio2">traceio2.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">[...]
28synergyc(3722) vfs_read 0x800005 28synergyc(3722) vfs_read 0x800005
29synergyc(3722) vfs_read 0x800005 29synergyc(3722) vfs_read 0x800005
diff --git a/SystemTap_Beginners_Guide/traceiosect.html b/SystemTap_Beginners_Guide/traceiosect.html
index a8cd3b16..7ecea956 100644
--- a/SystemTap_Beginners_Guide/traceiosect.html
+++ b/SystemTap_Beginners_Guide/traceiosect.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.3. Track Cumulative IO</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="iotimesect.html" title="5.2.2. Tracking I/O Time For Each File Read or Write" /><link rel="next" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="iotimesect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceio2sect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="traceiosect"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">5.2.3. Track Cumulative IO</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="mainsect-disk.html" title="5.2. Disk" /><link rel="prev" href="iotimesect.html" title="5.2.2. Tracking I/O Time For Each File Read or Write" /><link rel="next" href="traceio2sect.html" title="5.2.4. I/O Monitoring (By Device)" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="iotimesect.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="traceio2sect.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="traceiosect">
3 ⁠</a>5.2.3. Track Cumulative IO</h3></div></div></div><a id="idm140217034336960" class="indexterm"></a><a id="idm140217032879136" class="indexterm"></a><a id="idm140217037442512" class="indexterm"></a><a id="idm140217034432160" class="indexterm"></a><a id="idm140217035242016" class="indexterm"></a><a id="idm140217038333264" class="indexterm"></a><div class="para"> 3 ⁠</a>5.2.3. Track Cumulative IO</h3></div></div></div><a id="idm47006118537184" class="indexterm"></a><a id="idm47006119068416" class="indexterm"></a><a id="idm47006124633008" class="indexterm"></a><a id="idm47006117219232" class="indexterm"></a><a id="idm47006123234336" class="indexterm"></a><a id="idm47006125243568" class="indexterm"></a><div class="para">
4 This section describes how to track the cumulative amount of I/O to the system. 4 This section describes how to track the cumulative amount of I/O to the system.
5 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio.stp</div> 5 </div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">traceio.stp</div>
6<pre class="programlisting">#! /usr/bin/env stap 6<pre class="programlisting">#! /usr/bin/env stap
@@ -58,7 +58,7 @@ probe timer.s(1) {
58 addition, it also tracks the cumulative amount of I/O reads and writes done by those ten 58 addition, it also tracks the cumulative amount of I/O reads and writes done by those ten
59 executables. This information is tracked and printed out in 1-second intervals, and in 59 executables. This information is tracked and printed out in 1-second intervals, and in
60 descending order. 60 descending order.
61</div><a id="idm140217039897552" class="indexterm"></a><a id="idm140217036859328" class="indexterm"></a><a id="idm140217042961104" class="indexterm"></a><div class="para"> 61</div><a id="idm47006123103648" class="indexterm"></a><a id="idm47006128813520" class="indexterm"></a><a id="idm47006124514432" class="indexterm"></a><div class="para">
62 Note that <a class="xref" href="traceiosect.html#traceio">traceio.stp</a> also uses the local variable <code class="command">$return</code>, 62 Note that <a class="xref" href="traceiosect.html#traceio">traceio.stp</a> also uses the local variable <code class="command">$return</code>,
63 which is also used by <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from <a class="xref" href="mainsect-disk.html#disktop">Section 5.2.1, “Summarizing Disk Read/Write Traffic”</a>. 63 which is also used by <a class="xref" href="mainsect-disk.html#scriptdisktop">disktop.stp</a> from <a class="xref" href="mainsect-disk.html#disktop">Section 5.2.1, “Summarizing Disk Read/Write Traffic”</a>.
64</div><div class="example"><a id="traceiooutput"> 64</div><div class="example"><a id="traceiooutput">
diff --git a/SystemTap_Beginners_Guide/typecasting.html b/SystemTap_Beginners_Guide/typecasting.html
index 3e2f8af8..edd5b7e4 100644
--- a/SystemTap_Beginners_Guide/typecasting.html
+++ b/SystemTap_Beginners_Guide/typecasting.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.2. Typecasting</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="next" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetvariables.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetavailable.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="typecasting"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.3.2.2. Typecasting</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="prev" href="targetvariables.html" title="3.3.2. Target Variables" /><link rel="next" href="targetavailable.html" title="3.3.2.3. Checking Target Variable Availability" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="targetvariables.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="targetavailable.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="typecasting">
3 ⁠</a>3.3.2.2. Typecasting</h4></div></div></div><a id="idm140217034599424" class="indexterm"></a><div class="para"> 3 ⁠</a>3.3.2.2. Typecasting</h4></div></div></div><a id="idm47006119183296" class="indexterm"></a><div class="para">
4 In most cases SystemTap can determine a variable's type 4 In most cases SystemTap can determine a variable's type
5 from the debug information. 5 from the debug information.
6 However, code may use void pointers for variables 6 However, code may use void pointers for variables
diff --git a/SystemTap_Beginners_Guide/understanding-how-systemtap-works.html b/SystemTap_Beginners_Guide/understanding-how-systemtap-works.html
index 199f88fd..633739ac 100644
--- a/SystemTap_Beginners_Guide/understanding-how-systemtap-works.html
+++ b/SystemTap_Beginners_Guide/understanding-how-systemtap-works.html
@@ -1,28 +1,28 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 3. Understanding How SystemTap Works</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="using-usage.html" title="2.3. Running SystemTap Scripts" /><link rel="next" href="scripts.html" title="3.2. SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-usage.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scripts.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="understanding-how-systemtap-works"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 3. Understanding How SystemTap Works</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="using-usage.html" title="2.3. Running SystemTap Scripts" /><link rel="next" href="scripts.html" title="3.2. SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="using-usage.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="scripts.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="understanding-how-systemtap-works">
3 ⁠</a>Chapter 3. Understanding How SystemTap Works</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></div><a id="idm140217031866000" class="indexterm"></a><div class="para"> 3 ⁠</a>Chapter 3. Understanding How SystemTap Works</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="understanding-how-systemtap-works.html#understanding-architecture-tools">3.1. Architecture</a></span></dt><dt><span class="section"><a href="scripts.html">3.2. SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="scripts.html#systemtapscript-events">3.2.1. Event</a></span></dt><dt><span class="section"><a href="systemtapscript-handler.html">3.2.2. SystemTap Handler/Body</a></span></dt></dl></dd><dt><span class="section"><a href="scriptconstructions.html">3.3. Basic SystemTap Handler Constructs</a></span></dt><dd><dl><dt><span class="section"><a href="scriptconstructions.html#variablesconstructs">3.3.1. Variables</a></span></dt><dt><span class="section"><a href="targetvariables.html">3.3.2. Target Variables</a></span></dt><dt><span class="section"><a href="handlerconditionalstatements.html">3.3.3. Conditional Statements</a></span></dt><dt><span class="section"><a href="commandlineargssect.html">3.3.4. Command-Line Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="associativearrays.html">3.4. Associative Arrays</a></span></dt><dt><span class="section"><a href="arrayoperators.html">3.5. Array Operations in SystemTap</a></span></dt><dd><dl><dt><span class="section"><a href="arrayoperators.html#arrayops-assignvalue">3.5.1. Assigning an Associated Value</a></span></dt><dt><span class="section"><a href="arrayops-readvalues.html">3.5.2. Reading Values From Arrays</a></span></dt><dt><span class="section"><a href="arrayops-increment.html">3.5.3. Incrementing Associated Values</a></span></dt><dt><span class="section"><a href="arrayops-foreach.html">3.5.4. Processing Multiple Elements in an Array</a></span></dt><dt><span class="section"><a href="arrayops-deleting.html">3.5.5. Clearing/Deleting Arrays and Array Elements</a></span></dt><dt><span class="section"><a href="arrayops-conditionals.html">3.5.6. Using Arrays in Conditional Statements</a></span></dt><dt><span class="section"><a href="arrayops-aggregates.html">3.5.7. Computing for Statistical Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="understanding-tapsets.html">3.6. Tapsets</a></span></dt></dl></div><a id="idm47006117608864" class="indexterm"></a><div class="para">
4 SystemTap allows users to write and reuse simple scripts to deeply 4 SystemTap allows users to write and reuse simple scripts to deeply
5 examine the activities of a running Linux system. These scripts can be 5 examine the activities of a running Linux system. These scripts can be
6 designed to extract data, filter it, and summarize it quickly (and 6 designed to extract data, filter it, and summarize it quickly (and
7 safely), enabling the diagnosis of complex performance (or even 7 safely), enabling the diagnosis of complex performance (or even
8 functional) problems. 8 functional) problems.
9 </div><a id="idm140217031868240" class="indexterm"></a><a id="idm140217031869488" class="indexterm"></a><a id="idm140217031870832" class="indexterm"></a><div class="para">The essential idea behind a SystemTap script is to name 9 </div><a id="idm47006117610592" class="indexterm"></a><a id="idm47006117612576" class="indexterm"></a><a id="idm47006117613712" class="indexterm"></a><div class="para">The essential idea behind a SystemTap script is to name
10 <span class="emphasis"><em>events</em></span>, and to give them 10 <span class="emphasis"><em>events</em></span>, and to give them
11 <span class="emphasis"><em>handlers</em></span>. When SystemTap runs the script, SystemTap 11 <span class="emphasis"><em>handlers</em></span>. When SystemTap runs the script, SystemTap
12 monitors for the event; once the event occurs, the Linux kernel then runs 12 monitors for the event; once the event occurs, the Linux kernel then runs
13 the handler as a quick sub-routine, then resumes. 13 the handler as a quick sub-routine, then resumes.
14 </div><a id="idm140217031873712" class="indexterm"></a><a id="idm140217031875152" class="indexterm"></a><div class="para"> 14 </div><a id="idm47006117617296" class="indexterm"></a><a id="idm47006117618384" class="indexterm"></a><div class="para">
15 There are several kind of events; entering/exiting a function, timer 15 There are several kind of events; entering/exiting a function, timer
16 expiration, session termination, etc. A handler is a series of script 16 expiration, session termination, etc. A handler is a series of script
17 language statements that specify the work to be done whenever the event 17 language statements that specify the work to be done whenever the event
18 occurs. This work normally includes extracting data from the event context, 18 occurs. This work normally includes extracting data from the event context,
19 storing them into internal variables, and printing results. 19 storing them into internal variables, and printing results.
20</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-architecture-tools"> 20</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-architecture-tools">
21 ⁠</a>3.1. Architecture</h2></div></div></div><a id="idm140217031880480" class="indexterm"></a><a id="idm140217031879856" class="indexterm"></a><a id="idm140217031880864" class="indexterm"></a><div class="para"> 21 ⁠</a>3.1. Architecture</h2></div></div></div><a id="idm47006117624080" class="indexterm"></a><a id="idm47006117623920" class="indexterm"></a><a id="idm47006117625008" class="indexterm"></a><div class="para">
22 A SystemTap session begins when you run a SystemTap script. This 22 A SystemTap session begins when you run a SystemTap script. This
23 session occurs in the following fashion: 23 session occurs in the following fashion:
24 </div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="systemtapsession"> 24 </div><div xmlns:d="http://docbook.org/ns/docbook" class="procedure"><a id="systemtapsession">
25 ⁠</a><p class="title"><strong>Procedure 3.1. SystemTap Session</strong></p><a id="idm140217031892416" class="indexterm"></a><a id="idm140217031884672" class="indexterm"></a><a id="idm140217031885312" class="indexterm"></a><ol class="1"><li class="step"><div class="para"> 25 ⁠</a><p class="title"><strong>Procedure 3.1. SystemTap Session</strong></p><a id="idm47006117627744" class="indexterm"></a><a id="idm47006117628656" class="indexterm"></a><a id="idm47006117629776" class="indexterm"></a><ol class="1"><li class="step"><div class="para">
26 First, SystemTap checks the script against the existing tapset library 26 First, SystemTap checks the script against the existing tapset library
27 (normally in <code class="filename">/usr/share/systemtap/tapset/</code> for any 27 (normally in <code class="filename">/usr/share/systemtap/tapset/</code> for any
28 tapsets used. SystemTap will then substitute any located tapsets with their 28 tapsets used. SystemTap will then substitute any located tapsets with their
diff --git a/SystemTap_Beginners_Guide/understanding-tapsets.html b/SystemTap_Beginners_Guide/understanding-tapsets.html
index d0af6162..115cb7b0 100644
--- a/SystemTap_Beginners_Guide/understanding-tapsets.html
+++ b/SystemTap_Beginners_Guide/understanding-tapsets.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.6. Tapsets</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /><link rel="next" href="userspace-probing.html" title="Chapter 4. User-space Probing" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-aggregates.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="userspace-probing.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-tapsets"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">3.6. Tapsets</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /><link rel="prev" href="arrayops-aggregates.html" title="3.5.7. Computing for Statistical Aggregates" /><link rel="next" href="userspace-probing.html" title="Chapter 4. User-space Probing" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="arrayops-aggregates.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="userspace-probing.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="understanding-tapsets">
3 ⁠</a>3.6. Tapsets</h2></div></div></div><a id="idm140217040204704" class="indexterm"></a><div class="para"> 3 ⁠</a>3.6. Tapsets</h2></div></div></div><a id="idm47006123488176" class="indexterm"></a><div class="para">
4 <em class="firstterm">Tapsets</em> are scripts that form a library of 4 <em class="firstterm">Tapsets</em> are scripts that form a library of
5 pre-written probes and functions to be used in SystemTap scripts. When a 5 pre-written probes and functions to be used in SystemTap scripts. When a
6 user runs a SystemTap script, SystemTap checks the script's probe events 6 user runs a SystemTap script, SystemTap checks the script's probe events
diff --git a/SystemTap_Beginners_Guide/useful-systemtap-scripts.html b/SystemTap_Beginners_Guide/useful-systemtap-scripts.html
index e1124b20..d87972dc 100644
--- a/SystemTap_Beginners_Guide/useful-systemtap-scripts.html
+++ b/SystemTap_Beginners_Guide/useful-systemtap-scripts.html
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 5. Useful SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="ustack.html" title="4.3. User-Space Stack Backtraces" /><link rel="next" href="mainsect-disk.html" title="5.2. Disk" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="ustack.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-disk.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="useful-systemtap-scripts"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 5. Useful SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="ustack.html" title="4.3. User-Space Stack Backtraces" /><link rel="next" href="mainsect-disk.html" title="5.2. Disk" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="ustack.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="mainsect-disk.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="useful-systemtap-scripts">
3 ⁠</a>Chapter 5. Useful SystemTap Scripts</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></div><a id="idm140217044079376" class="indexterm"></a><a id="idm140217040215168" class="indexterm"></a><a id="idm140217034431712" class="indexterm"></a><a id="idm140217041842288" class="indexterm"></a><div class="para">This chapter enumerates several SystemTap scripts you can use to monitor and investigate different subsystems. All of these scripts are available at <code class="filename">/usr/share/systemtap/testsuite/systemtap.examples/</code> once you install the <code class="filename">systemtap-testsuite</code> RPM.</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-network"> 3 ⁠</a>Chapter 5. Useful SystemTap Scripts</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="useful-systemtap-scripts.html#mainsect-network">5.1. Network</a></span></dt><dd><dl><dt><span class="section"><a href="useful-systemtap-scripts.html#nettopsect">5.1.1. Network Profiling</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#sockettracesect">5.1.2. Tracing Functions Called in Network Socket Code</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpconnectionssect">5.1.3. Monitoring Incoming TCP Connections</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#tcpdumplikesect">5.1.4. Monitoring TCP Packets</a></span></dt><dt><span class="section"><a href="useful-systemtap-scripts.html#dropwatchsect">5.1.5. Monitoring Network Packets Drops in Kernel</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-disk.html">5.2. Disk</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-disk.html#disktop">5.2.1. Summarizing Disk Read/Write Traffic</a></span></dt><dt><span class="section"><a href="iotimesect.html">5.2.2. Tracking I/O Time For Each File Read or Write</a></span></dt><dt><span class="section"><a href="traceiosect.html">5.2.3. Track Cumulative IO</a></span></dt><dt><span class="section"><a href="traceio2sect.html">5.2.4. I/O Monitoring (By Device)</a></span></dt><dt><span class="section"><a href="inodewatchsect.html">5.2.5. Monitoring Reads and Writes to a File</a></span></dt><dt><span class="section"><a href="inodewatch2sect.html">5.2.6. Monitoring Changes to File Attributes</a></span></dt><dt><span class="section"><a href="ioblktimesect.html">5.2.7. Periodically Print I/O Block Time</a></span></dt></dl></dd><dt><span class="section"><a href="mainsect-profiling.html">5.3. Profiling</a></span></dt><dd><dl><dt><span class="section"><a href="mainsect-profiling.html#countcallssect">5.3.1. Counting Function Calls Made</a></span></dt><dt><span class="section"><a href="paracallgraph.html">5.3.2. Call Graph Tracing</a></span></dt><dt><span class="section"><a href="threadtimessect.html">5.3.3. Determining Time Spent in Kernel and User Space</a></span></dt><dt><span class="section"><a href="timeoutssect.html">5.3.4. Monitoring Polling Applications</a></span></dt><dt><span class="section"><a href="topsyssect.html">5.3.5. Tracking Most Frequently Used System Calls</a></span></dt><dt><span class="section"><a href="syscallsbyprocpidsect.html">5.3.6. Tracking System Call Volume Per Process</a></span></dt></dl></dd><dt><span class="section"><a href="futexcontentionsect.html">5.4. Identifying Contended User-Space Locks</a></span></dt></dl></div><a id="idm47006119684832" class="indexterm"></a><a id="idm47006123027056" class="indexterm"></a><a id="idm47006123027568" class="indexterm"></a><a id="idm47006123028720" class="indexterm"></a><div class="para">This chapter enumerates several SystemTap scripts you can use to monitor and investigate different subsystems. All of these scripts are available at <code class="filename">/usr/share/systemtap/testsuite/systemtap.examples/</code> once you install the <code class="filename">systemtap-testsuite</code> RPM.</div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="mainsect-network">
4 ⁠</a>5.1. Network</h2></div></div></div><div class="para">The following sections showcase scripts that trace network-related functions and build a profile of network activity.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="nettopsect"> 4 ⁠</a>5.1. Network</h2></div></div></div><div class="para">The following sections showcase scripts that trace network-related functions and build a profile of network activity.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="nettopsect">
5 ⁠</a>5.1.1. Network Profiling</h3></div></div></div><a id="idm140217043058864" class="indexterm"></a><a id="idm140217037457440" class="indexterm"></a><a id="idm140217035965328" class="indexterm"></a><a id="idm140217038987632" class="indexterm"></a><a id="idm140217040272240" class="indexterm"></a><div class="para">This section describes how to profile network activity. <a class="xref" href="useful-systemtap-scripts.html#nettop">nettop.stp</a> provides a glimpse into how much network traffic each process is generating on a machine.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">nettop.stp</div> 5 ⁠</a>5.1.1. Network Profiling</h3></div></div></div><a id="idm47006125323360" class="indexterm"></a><a id="idm47006125324848" class="indexterm"></a><a id="idm47006125325104" class="indexterm"></a><a id="idm47006119214336" class="indexterm"></a><a id="idm47006117264016" class="indexterm"></a><div class="para">This section describes how to profile network activity. <a class="xref" href="useful-systemtap-scripts.html#nettop">nettop.stp</a> provides a glimpse into how much network traffic each process is generating on a machine.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">nettop.stp</div>
6<pre class="programlisting">#! /usr/bin/env stap 6<pre class="programlisting">#! /usr/bin/env stap
7 7
8global ifxmit, ifrecv 8global ifxmit, ifrecv
@@ -52,7 +52,7 @@ probe timer.ms(5000), end, error
52 print_activity() 52 print_activity()
53} 53}
54</pre> 54</pre>
55</div><a id="idm140217045251376" class="indexterm"></a><a id="idm140217035234880" class="indexterm"></a><a id="idm140217041695328" class="indexterm"></a><div class="para">Note that <code class="command">function print_activity()</code> uses the following 55</div><a id="idm47006127087776" class="indexterm"></a><a id="idm47006126377472" class="indexterm"></a><a id="idm47006121677776" class="indexterm"></a><div class="para">Note that <code class="command">function print_activity()</code> uses the following
56expressions:</div><pre class="screen">n_xmit ? @sum(ifxmit[pid, dev, exec, uid])/1024 : 0 56expressions:</div><pre class="screen">n_xmit ? @sum(ifxmit[pid, dev, exec, uid])/1024 : 0
57n_recv ? @sum(ifrecv[pid, dev, exec, uid])/1024 : 0</pre><div class="para">These expressions are if/else conditionals. 57n_recv ? @sum(ifrecv[pid, dev, exec, uid])/1024 : 0</pre><div class="para">These expressions are if/else conditionals.
58The first statement is a more concise way of writing the following 58The first statement is a more concise way of writing the following
@@ -84,7 +84,7 @@ else
8411362 0 eth0 0 7 0 0 firefox 8411362 0 eth0 0 7 0 0 firefox
85 3897 0 eth0 0 1 0 0 multiload-apple 85 3897 0 eth0 0 1 0 0 multiload-apple
86[...]</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="sockettracesect"> 86[...]</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="sockettracesect">
87 ⁠</a>5.1.2. Tracing Functions Called in Network Socket Code</h3></div></div></div><a id="idm140217041072608" class="indexterm"></a><a id="idm140217036284704" class="indexterm"></a><a id="idm140217044755488" class="indexterm"></a><a id="idm140217035034960" class="indexterm"></a><a id="idm140217036436848" class="indexterm"></a><a id="idm140217042601312" class="indexterm"></a><a id="idm140217033144432" class="indexterm"></a><a id="idm140217044070112" class="indexterm"></a><div class="para">This section describes how to trace functions called from the kernel's <code class="filename">net/socket.c</code> file. This task helps you identify, in finer detail, how each process interacts with the network at the kernel level.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">socket-trace.stp</div> 87 ⁠</a>5.1.2. Tracing Functions Called in Network Socket Code</h3></div></div></div><a id="idm47006129005168" class="indexterm"></a><a id="idm47006127977024" class="indexterm"></a><a id="idm47006125918112" class="indexterm"></a><a id="idm47006120214848" class="indexterm"></a><a id="idm47006123753120" class="indexterm"></a><a id="idm47006121544352" class="indexterm"></a><a id="idm47006121365888" class="indexterm"></a><a id="idm47006120127104" class="indexterm"></a><div class="para">This section describes how to trace functions called from the kernel's <code class="filename">net/socket.c</code> file. This task helps you identify, in finer detail, how each process interacts with the network at the kernel level.</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">socket-trace.stp</div>
88<pre class="programlisting">#! /usr/bin/env stap 88<pre class="programlisting">#! /usr/bin/env stap
89 89
90probe kernel.function("*@net/socket.c").call { 90probe kernel.function("*@net/socket.c").call {
@@ -115,7 +115,7 @@ probe kernel.function("*@net/socket.c").return {
11531 scim-bridge(3883): &lt;- sys_recv 11531 scim-bridge(3883): &lt;- sys_recv
11635 scim-bridge(3883): &lt;- sys_socketcall 11635 scim-bridge(3883): &lt;- sys_socketcall
117[...]</pre></div></div><div class="para"><a class="xref" href="useful-systemtap-scripts.html#sockettraceoutput">Example 5.2, “socket-trace.stp Sample Output”</a> contains a 3-second excerpt of the output for <a class="xref" href="useful-systemtap-scripts.html#sockettrace">socket-trace.stp</a>. For more information about the output of this script as provided by <code class="command">thread_indent()</code>, refer to <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a> <a class="xref" href="systemtapscript-handler.html#thread_indent">Example 3.6, “thread_indent.stp”</a>. </div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tcpconnectionssect"> 117[...]</pre></div></div><div class="para"><a class="xref" href="useful-systemtap-scripts.html#sockettraceoutput">Example 5.2, “socket-trace.stp Sample Output”</a> contains a 3-second excerpt of the output for <a class="xref" href="useful-systemtap-scripts.html#sockettrace">socket-trace.stp</a>. For more information about the output of this script as provided by <code class="command">thread_indent()</code>, refer to <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a> <a class="xref" href="systemtapscript-handler.html#thread_indent">Example 3.6, “thread_indent.stp”</a>. </div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tcpconnectionssect">
118 ⁠</a>5.1.3. Monitoring Incoming TCP Connections</h3></div></div></div><a id="idm140217032828592" class="indexterm"></a><a id="idm140217032573696" class="indexterm"></a><a id="idm140217038938192" class="indexterm"></a><a id="idm140217042752832" class="indexterm"></a><a id="idm140217032493552" class="indexterm"></a><div class="para"> 118 ⁠</a>5.1.3. Monitoring Incoming TCP Connections</h3></div></div></div><a id="idm47006125574240" class="indexterm"></a><a id="idm47006124056208" class="indexterm"></a><a id="idm47006127643984" class="indexterm"></a><a id="idm47006124474352" class="indexterm"></a><a id="idm47006122946928" class="indexterm"></a><div class="para">
119 This section illustrates how to monitor incoming TCP connections. This task is useful in 119 This section illustrates how to monitor incoming TCP connections. This task is useful in
120 identifying any unauthorized, suspicious, or otherwise unwanted network access requests 120 identifying any unauthorized, suspicious, or otherwise unwanted network access requests
121 in real time. 121 in real time.
@@ -142,7 +142,7 @@ probe kernel.function("tcp_accept").return?,
142 ⁠</a><p class="title"><strong>Example 5.3. <a class="xref" href="useful-systemtap-scripts.html#tcpconnections">tcp_connections.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">UID CMD PID PORT IP_SOURCE 142 ⁠</a><p class="title"><strong>Example 5.3. <a class="xref" href="useful-systemtap-scripts.html#tcpconnections">tcp_connections.stp</a> Sample Output</strong></p><div class="example-contents"><pre class="screen">UID CMD PID PORT IP_SOURCE
1430 sshd 3165 22 10.64.0.227 1430 sshd 3165 22 10.64.0.227
1440 sshd 3165 22 10.64.0.227</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tcpdumplikesect"> 1440 sshd 3165 22 10.64.0.227</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tcpdumplikesect">
145 ⁠</a>5.1.4. Monitoring TCP Packets</h3></div></div></div><a id="idm140217035132560" class="indexterm"></a><a id="idm140217043507520" class="indexterm"></a><a id="idm140217034664048" class="indexterm"></a><a id="idm140217043980720" class="indexterm"></a><a id="idm140217034337520" class="indexterm"></a><div class="para"> 145 ⁠</a>5.1.4. Monitoring TCP Packets</h3></div></div></div><a id="idm47006118779184" class="indexterm"></a><a id="idm47006127114560" class="indexterm"></a><a id="idm47006128126784" class="indexterm"></a><a id="idm47006126198560" class="indexterm"></a><a id="idm47006124519152" class="indexterm"></a><div class="para">
146 This section illustrates how to monitor TCP packets received by the system. This is useful in 146 This section illustrates how to monitor TCP packets received by the system. This is useful in
147 analyzing network traffic generated by applications running on the system. 147 analyzing network traffic generated by applications running on the system.
148</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">tcpdumplike.stp</div> 148</div><div class="para"><div xmlns:d="http://docbook.org/ns/docbook" class="title">tcpdumplike.stp</div>
@@ -193,8 +193,8 @@ probe tcp.receive {
193 209.85.229.147 10.0.2.15 80 21141 0 1 1 0 0 0 193 209.85.229.147 10.0.2.15 80 21141 0 1 1 0 0 0
194 209.85.229.118 10.0.2.15 80 63433 0 1 1 0 0 0 194 209.85.229.118 10.0.2.15 80 63433 0 1 1 0 0 0
195[...]</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="dropwatchsect"> 195[...]</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="dropwatchsect">
196 ⁠</a>5.1.5. Monitoring Network Packets Drops in Kernel</h3></div></div></div><a id="idm140217038615776" class="indexterm"></a><a id="idm140217041274240" class="indexterm"></a><a id="idm140217032787248" class="indexterm"></a><a id="idm140217038581920" class="indexterm"></a><a id="idm140217035725152" class="indexterm"></a><div class="para"> 196 ⁠</a>5.1.5. Monitoring Network Packets Drops in Kernel</h3></div></div></div><a id="idm47006125322704" class="indexterm"></a><a id="idm47006118857344" class="indexterm"></a><a id="idm47006121669280" class="indexterm"></a><a id="idm47006120737584" class="indexterm"></a><a id="idm47006122946336" class="indexterm"></a><div class="para">
197<a id="idm140217037431328" class="indexterm"></a> 197<a id="idm47006125922416" class="indexterm"></a>
198The network stack in Linux 198The network stack in Linux
199can discard packets for various reasons. Some Linux kernels include a 199can discard packets for various reasons. Some Linux kernels include a
200tracepoint, <code class="command">kernel.trace("kfree_skb")</code>, which easily tracks where packets are discarded. 200tracepoint, <code class="command">kernel.trace("kfree_skb")</code>, which easily tracks where packets are discarded.
diff --git a/SystemTap_Beginners_Guide/userspace-probing.html b/SystemTap_Beginners_Guide/userspace-probing.html
index 3ec4bd6d..a7a76874 100644
--- a/SystemTap_Beginners_Guide/userspace-probing.html
+++ b/SystemTap_Beginners_Guide/userspace-probing.html
@@ -23,7 +23,7 @@ To determine whether the currently running Linux kernel provides the needed utra
23</div><pre class="screen"><code class="command">grep CONFIG_UTRACE /boot/config-`uname -r`</code></pre><div class="para"> 23</div><pre class="screen"><code class="command">grep CONFIG_UTRACE /boot/config-`uname -r`</code></pre><div class="para">
24If the Linux kernel supports user-space probing, the command produces the following output: 24If the Linux kernel supports user-space probing, the command produces the following output:
25</div><pre class="screen">CONFIG_UTRACE=y</pre><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="uevents"> 25</div><pre class="screen">CONFIG_UTRACE=y</pre><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="uevents">
26 ⁠</a>4.1. User-Space Events</h2></div></div></div><a id="idm140217035502416" class="indexterm"></a><div class="para"> 26 ⁠</a>4.1. User-Space Events</h2></div></div></div><a id="idm47006128373168" class="indexterm"></a><div class="para">
27All user-space event probes begin with <span class="emphasis"><em>process</em></span>. 27All user-space event probes begin with <span class="emphasis"><em>process</em></span>.
28You can limit the process events to a specific running process by specifying the process ID. 28You can limit the process events to a specific running process by specifying the process ID.
29You can also limit the process events to monitor a particular executable 29You can also limit the process events to monitor a particular executable
diff --git a/SystemTap_Beginners_Guide/using-systemtap.html b/SystemTap_Beginners_Guide/using-systemtap.html
index f2aff77e..2c8654dd 100644
--- a/SystemTap_Beginners_Guide/using-systemtap.html
+++ b/SystemTap_Beginners_Guide/using-systemtap.html
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 2. Using SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /><link rel="next" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-limitations.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="cross-compiling.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="using-systemtap"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">Chapter 2. Using SystemTap</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="index.html" title="SystemTap Beginners Guide" /><link rel="prev" href="intro-systemtap-limitations.html" title="1.3. Limitations of SystemTap" /><link rel="next" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="intro-systemtap-limitations.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="cross-compiling.html"><strong>Next</strong></a></li></ul><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="using-systemtap">
3 ⁠</a>Chapter 2. Using SystemTap</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></div><a id="idm140217035847888" class="indexterm"></a><div class="para"> 3 ⁠</a>Chapter 2. Using SystemTap</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="using-systemtap.html#using-setup">2.1. Installation and Setup</a></span></dt><dd><dl><dt><span class="section"><a href="using-systemtap.html#installproper">2.1.1. Installing SystemTap</a></span></dt><dt><span class="section"><a href="using-systemtap.html#install-kinfo">2.1.2. Installing Required Kernel Information Packages Manually</a></span></dt><dt><span class="section"><a href="using-systemtap.html#testing">2.1.3. Initial Testing</a></span></dt></dl></dd><dt><span class="section"><a href="cross-compiling.html">2.2. Generating Instrumentation for Other Computers</a></span></dt><dt><span class="section"><a href="using-usage.html">2.3. Running SystemTap Scripts</a></span></dt><dd><dl><dt><span class="section"><a href="using-usage.html#flight-recorder">2.3.1. SystemTap Flight Recorder Mode</a></span></dt></dl></dd></dl></div><a id="idm47006121118000" class="indexterm"></a><div class="para">
4 This chapter documents how to install SystemTap in the system and explains how to use the <code class="command">stap</code> utility to run SystemTap scripts. 4 This chapter documents how to install SystemTap in the system and explains how to use the <code class="command">stap</code> utility to run SystemTap scripts.
5 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="using-setup"> 5 </div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="using-setup">
6 ⁠</a>2.1. Installation and Setup</h2></div></div></div><a id="idm140217040142864" class="indexterm"></a><a id="idm140217040144432" class="indexterm"></a><div class="para">To deploy SystemTap, install the SystemTap packages along 6 ⁠</a>2.1. Installation and Setup</h2></div></div></div><a id="idm47006121122800" class="indexterm"></a><a id="idm47006121124368" class="indexterm"></a><div class="para">To deploy SystemTap, install the SystemTap packages along
7 with the corresponding set of <span class="package">-devel</span>, 7 with the corresponding set of <span class="package">-devel</span>,
8 <span class="package">-debuginfo</span>, and <span class="package">-debuginfo-common</span> 8 <span class="package">-debuginfo</span>, and <span class="package">-debuginfo-common</span>
9 packages for your kernel. If your system has multiple kernels installed and 9 packages for your kernel. If your system has multiple kernels installed and
@@ -17,7 +17,7 @@
17 <span class="package">-debuginfo</span> package of the kernel, not the 17 <span class="package">-debuginfo</span> package of the kernel, not the
18 <span class="package">-debug</span> version of the kernel.</div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="installproper"> 18 <span class="package">-debug</span> version of the kernel.</div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="installproper">
19 ⁠</a>2.1.1. Installing SystemTap</h3></div></div></div><div class="para">To deploy SystemTap, install the following RPM packages: 19 ⁠</a>2.1.1. Installing SystemTap</h3></div></div></div><div class="para">To deploy SystemTap, install the following RPM packages:
20 </div><a id="idm140217040153936" class="indexterm"></a><a id="idm140217040156080" class="indexterm"></a><a id="idm140217040157376" class="indexterm"></a><a id="idm140217040158736" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="package">systemtap</span></div></li><li class="listitem"><div class="para"><span class="package">systemtap-runtime</span></div></li></ul></div><div class="para"> 20 </div><a id="idm47006121133872" class="indexterm"></a><a id="idm47006121136016" class="indexterm"></a><a id="idm47006121137312" class="indexterm"></a><a id="idm47006121138672" class="indexterm"></a><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="package">systemtap</span></div></li><li class="listitem"><div class="para"><span class="package">systemtap-runtime</span></div></li></ul></div><div class="para">
21 To do so, run the following command as root: 21 To do so, run the following command as root:
22 </div><pre class="screen"><code class="command">yum install systemtap systemtap-runtime</code></pre><div class="para"> 22 </div><pre class="screen"><code class="command">yum install systemtap systemtap-runtime</code></pre><div class="para">
23 Note that before using SystemTap, you still need to install the required 23 Note that before using SystemTap, you still need to install the required
@@ -26,7 +26,7 @@
26 </div><pre class="screen"><code class="command">stap-prep</code></pre><div class="para"> 26 </div><pre class="screen"><code class="command">stap-prep</code></pre><div class="para">
27 If this command does not work, try manual installation as described below. 27 If this command does not work, try manual installation as described below.
28 </div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="install-kinfo"> 28 </div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="install-kinfo">
29 ⁠</a>2.1.2. Installing Required Kernel Information Packages Manually</h3></div></div></div><a id="idm140217040170032" class="indexterm"></a><a id="idm140217040166864" class="indexterm"></a><a id="idm140217040168336" class="indexterm"></a><a id="idm140217040169088" class="indexterm"></a><a id="idm140217040173104" class="indexterm"></a><a id="idm140217040172048" class="indexterm"></a><div class="para"> 29 ⁠</a>2.1.2. Installing Required Kernel Information Packages Manually</h3></div></div></div><a id="idm47006122781712" class="indexterm"></a><a id="idm47006122778544" class="indexterm"></a><a id="idm47006122780016" class="indexterm"></a><a id="idm47006122780768" class="indexterm"></a><a id="idm47006122784784" class="indexterm"></a><a id="idm47006122783728" class="indexterm"></a><div class="para">
30 SystemTap needs information about the kernel in order to place instrumentation in it (in other words, probe it). This 30 SystemTap needs information about the kernel in order to place instrumentation in it (in other words, probe it). This
31 information also allows SystemTap to generate the code for the instrumentation. 31 information also allows SystemTap to generate the code for the instrumentation.
32 </div><div class="para"> 32 </div><div class="para">
@@ -38,7 +38,7 @@
38 Likewise, the necessary packages for the PAE kernel are 38 Likewise, the necessary packages for the PAE kernel are
39 <span class="package">kernel-PAE-debuginfo</span>, <span class="package">kernel-PAE-debuginfo-common</span>, 39 <span class="package">kernel-PAE-debuginfo</span>, <span class="package">kernel-PAE-debuginfo-common</span>,
40 and <span class="package">kernel-PAE-devel</span>. 40 and <span class="package">kernel-PAE-devel</span>.
41 </div><a id="idm140217040181376" class="indexterm"></a><a id="idm140217040182640" class="indexterm"></a><a id="idm140217040184704" class="indexterm"></a><a id="idm140217040190496" class="indexterm"></a><div class="para"> To determine what kernel your system is currently using, use:</div><pre class="screen">uname -r</pre><div class="para"> 41 </div><a id="idm47006124184416" class="indexterm"></a><a id="idm47006124185680" class="indexterm"></a><a id="idm47006124187744" class="indexterm"></a><a id="idm47006122768288" class="indexterm"></a><div class="para"> To determine what kernel your system is currently using, use:</div><pre class="screen">uname -r</pre><div class="para">
42 For example, if you intend to use SystemTap on kernel version <span class="emphasis"><em>2.6.18-53.el5</em></span> on an <span class="emphasis"><em>i686</em></span> machine, 42 For example, if you intend to use SystemTap on kernel version <span class="emphasis"><em>2.6.18-53.el5</em></span> on an <span class="emphasis"><em>i686</em></span> machine,
43 download and install the following RPM packages: 43 download and install the following RPM packages:
44 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="package">kernel-debuginfo-2.6.18-53.1.13.el5.i686.rpm</span></div></li><li class="listitem"><div class="para"><span class="package">kernel-debuginfo-common-2.6.18-53.1.13.el5.i686.rpm</span></div></li><li class="listitem"><div class="para"><span class="package">kernel-devel-2.6.18-53.1.13.el5.i686.rpm</span></div></li></ul></div><div xmlns:d="http://docbook.org/ns/docbook" class="important"><div class="admonition_header"><p><strong>Important</strong></p></div><div class="admonition"><div class="para"> 44 </div><div xmlns:d="http://docbook.org/ns/docbook" class="itemizedlist"><ul><li class="listitem"><div class="para"><span class="package">kernel-debuginfo-2.6.18-53.1.13.el5.i686.rpm</span></div></li><li class="listitem"><div class="para"><span class="package">kernel-debuginfo-common-2.6.18-53.1.13.el5.i686.rpm</span></div></li><li class="listitem"><div class="para"><span class="package">kernel-devel-2.6.18-53.1.13.el5.i686.rpm</span></div></li></ul></div><div xmlns:d="http://docbook.org/ns/docbook" class="important"><div class="admonition_header"><p><strong>Important</strong></p></div><div class="admonition"><div class="para">
@@ -73,7 +73,7 @@
73<code class="command">debuginfo-install kernel-PAE-2.6.18-53.1.13.el5</code></pre><div class="para"> 73<code class="command">debuginfo-install kernel-PAE-2.6.18-53.1.13.el5</code></pre><div class="para">
74Once you have manually downloaded the required packages to the machine, run the following command as root to install them: 74Once you have manually downloaded the required packages to the machine, run the following command as root to install them:
75 </div><pre class="screen"><code class="command">rpm --force -ivh <em class="replaceable">package_names</em></code></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="testing"> 75 </div><pre class="screen"><code class="command">rpm --force -ivh <em class="replaceable">package_names</em></code></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="testing">
76 ⁠</a>2.1.3. Initial Testing</h3></div></div></div><a id="idm140217036641424" class="indexterm"></a><a id="idm140217036643008" class="indexterm"></a><a id="idm140217037867552" class="indexterm"></a><div class="para">If you are currently using the kernel you intend to probe with 76 ⁠</a>2.1.3. Initial Testing</h3></div></div></div><a id="idm47006120609312" class="indexterm"></a><a id="idm47006120611168" class="indexterm"></a><a id="idm47006129937728" class="indexterm"></a><div class="para">If you are currently using the kernel you intend to probe with
77 SystemTap, you can immediately test whether the deployment was 77 SystemTap, you can immediately test whether the deployment was
78 successful. If not, you restart the system and load the appropriate 78 successful. If not, you restart the system and load the appropriate
79 kernel. 79 kernel.
diff --git a/SystemTap_Beginners_Guide/using-usage.html b/SystemTap_Beginners_Guide/using-usage.html
index 93c2d55f..0b572091 100644
--- a/SystemTap_Beginners_Guide/using-usage.html
+++ b/SystemTap_Beginners_Guide/using-usage.html
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.3. Running SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /><link rel="next" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="cross-compiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-how-systemtap-works.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="using-usage"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">2.3. Running SystemTap Scripts</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="using-systemtap.html" title="Chapter 2. Using SystemTap" /><link rel="prev" href="cross-compiling.html" title="2.2. Generating Instrumentation for Other Computers" /><link rel="next" href="understanding-how-systemtap-works.html" title="Chapter 3. Understanding How SystemTap Works" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="cross-compiling.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="understanding-how-systemtap-works.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="using-usage">
3 ⁠</a>2.3. Running SystemTap Scripts</h2></div></div></div><a id="idm140217037252992" class="indexterm"></a><a id="idm140217039522752" class="indexterm"></a><a id="idm140217034975008" class="indexterm"></a><a id="idm140217037359680" class="indexterm"></a><a id="idm140217034713600" class="indexterm"></a><a id="idm140217034712016" class="indexterm"></a><div class="para"> 3 ⁠</a>2.3. Running SystemTap Scripts</h2></div></div></div><a id="idm47006119685888" class="indexterm"></a><a id="idm47006119752288" class="indexterm"></a><a id="idm47006124192112" class="indexterm"></a><a id="idm47006130021232" class="indexterm"></a><a id="idm47006130019280" class="indexterm"></a><a id="idm47006128917360" class="indexterm"></a><div class="para">
4 SystemTap is distributed with a number of command line tools that allow you to monitor the activities of the system. The <code class="command">stap</code> command reads probing instructions from a SystemTap script, translates these instructions into C code, builds a kernel module, and loads it into the running Linux kernel. The <code class="command">staprun</code> command runs SystemTap instrumentation, that is, a kernel module built from SystemTap scripts during a cross-instrumentation. 4 SystemTap is distributed with a number of command line tools that allow you to monitor the activities of the system. The <code class="command">stap</code> command reads probing instructions from a SystemTap script, translates these instructions into C code, builds a kernel module, and loads it into the running Linux kernel. The <code class="command">staprun</code> command runs SystemTap instrumentation, that is, a kernel module built from SystemTap scripts during a cross-instrumentation.
5 </div><a id="idm140217034893792" class="indexterm"></a><div class="para">Running <code class="command">stap</code> and <code class="command">staprun</code> requires elevated privileges to the system. Because not all users can be granted root access just to run SystemTap, you can allow a non-privileged user to run SystemTap instrumentation on their machine by adding them to one of the following user groups:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">stapdev</span></dt><dd><a id="idm140217034936656" class="indexterm"></a><a id="idm140217038469680" class="indexterm"></a><div class="para"> 5 </div><a id="idm47006119175136" class="indexterm"></a><div class="para">Running <code class="command">stap</code> and <code class="command">staprun</code> requires elevated privileges to the system. Because not all users can be granted root access just to run SystemTap, you can allow a non-privileged user to run SystemTap instrumentation on their machine by adding them to one of the following user groups:</div><div class="variablelist"><dl class="variablelist"><dt><span class="term">stapdev</span></dt><dd><a id="idm47006119625600" class="indexterm"></a><a id="idm47006119206176" class="indexterm"></a><div class="para">
6 Members of this group can use the <code class="command">stap</code> command to run SystemTap scripts, or <code class="command">staprun</code> to run SystemTap instrumentation modules. 6 Members of this group can use the <code class="command">stap</code> command to run SystemTap scripts, or <code class="command">staprun</code> to run SystemTap instrumentation modules.
7</div><div class="para"> 7</div><div class="para">
8 Running the <code class="command">stap</code> command involves compiling SystemTap scripts into kernel modules and 8 Running the <code class="command">stap</code> command involves compiling SystemTap scripts into kernel modules and
@@ -10,13 +10,13 @@
10 to <code class="systemitem">stapdev</code> members. Unfortunately, such privileges also grant effective root 10 to <code class="systemitem">stapdev</code> members. Unfortunately, such privileges also grant effective root
11 access to <code class="systemitem">stapdev</code> members. As a consequence, only grant 11 access to <code class="systemitem">stapdev</code> members. As a consequence, only grant
12 <code class="systemitem">stapdev</code> group membership to users whom you can trust with root access. 12 <code class="systemitem">stapdev</code> group membership to users whom you can trust with root access.
13</div></dd><dt><span class="term">stapusr</span></dt><dd><a id="idm140217033253360" class="indexterm"></a><a id="idm140217033251744" class="indexterm"></a><div class="para"> 13</div></dd><dt><span class="term">stapusr</span></dt><dd><a id="idm47006118551792" class="indexterm"></a><a id="idm47006118550176" class="indexterm"></a><div class="para">
14 Members of this group can only use the <code class="command">staprun</code> command to run SystemTap instrumentation modules. In addition, they can only run modules from the <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em>/systemtap/</code> directory. Note that this directory must be owned only by the root user, and must only be writable by the root user. 14 Members of this group can only use the <code class="command">staprun</code> command to run SystemTap instrumentation modules. In addition, they can only run modules from the <code class="filename">/lib/modules/<em class="replaceable">kernel_version</em>/systemtap/</code> directory. Note that this directory must be owned only by the root user, and must only be writable by the root user.
15</div></dd></dl></div><div class="para"> 15</div></dd></dl></div><div class="para">
16 The <code class="command">stap</code> command reads a SystemTap script either from a file, or from standard input. To tell <code class="command">stap</code> to read a SystemTap script from a file, specify the file name on the command line: 16 The <code class="command">stap</code> command reads a SystemTap script either from a file, or from standard input. To tell <code class="command">stap</code> to read a SystemTap script from a file, specify the file name on the command line:
17 </div><pre class="screen"><code class="command">stap <em class="replaceable">file_name</em></code></pre><a id="idm140217036666304" class="indexterm"></a><a id="idm140217044887072" class="indexterm"></a><a id="idm140217044885440" class="indexterm"></a><div class="para"> 17 </div><pre class="screen"><code class="command">stap <em class="replaceable">file_name</em></code></pre><a id="idm47006127956768" class="indexterm"></a><a id="idm47006123890336" class="indexterm"></a><a id="idm47006123888704" class="indexterm"></a><div class="para">
18 To instruct <code class="command">stap</code> to read a SystemTap script from standard input, use the <code class="option">-</code> switch instead of the file name. Note that any command-line options you wish to use must be inserted before the <code class="option">-</code> switch. For example, to make the output of the <code class="command">stap</code> command more verbose, type: 18 To instruct <code class="command">stap</code> to read a SystemTap script from standard input, use the <code class="option">-</code> switch instead of the file name. Note that any command-line options you wish to use must be inserted before the <code class="option">-</code> switch. For example, to make the output of the <code class="command">stap</code> command more verbose, type:
19 </div><pre class="screen"><code class="command">echo "probe timer.s(1) {exit()}" | stap -v -</code></pre><div class="para"> Below is a list of commonly used <code class="command">stap</code> options: </div><a id="idm140217034252608" class="indexterm"></a><a id="idm140217034250992" class="indexterm"></a><div class="variablelist"><a id="idm140217039251824" class="indexterm"></a><dl class="variablelist"><dt><span class="term">-v</span></dt><dd><div class="para">Makes the output of the SystemTap session more 19 </div><pre class="screen"><code class="command">echo "probe timer.s(1) {exit()}" | stap -v -</code></pre><div class="para"> Below is a list of commonly used <code class="command">stap</code> options: </div><a id="idm47006119476016" class="indexterm"></a><a id="idm47006119474400" class="indexterm"></a><div class="variablelist"><a id="idm47006123982240" class="indexterm"></a><dl class="variablelist"><dt><span class="term">-v</span></dt><dd><div class="para">Makes the output of the SystemTap session more
20 verbose. You can repeat this option multiple times to provide more details on the script's execution, 20 verbose. You can repeat this option multiple times to provide more details on the script's execution,
21 for example:</div><pre class="screen"><code class="command">stap -vvv script.stp</code></pre><div class="para">This option is particularly useful if you encounter any errors in running the script. 21 for example:</div><pre class="screen"><code class="command">stap -vvv script.stp</code></pre><div class="para">This option is particularly useful if you encounter any errors in running the script.
22 For more information about common SystemTap script errors, refer to <a class="xref" href="errors.html">Chapter 6, <em>Understanding SystemTap Errors</em></a>.</div></dd><dt><span class="term">-o <em class="replaceable">file_name</em></span></dt><dd><div class="para">Sends the standard output to a file named <em class="replaceable">file_name</em>.</div></dd><dt><span class="term">-S <em class="replaceable">size</em>,<em class="replaceable">count</em></span></dt><dd><div class="para">Limits the maximum size of output files to <em class="replaceable">size</em> megabytes and 22 For more information about common SystemTap script errors, refer to <a class="xref" href="errors.html">Chapter 6, <em>Understanding SystemTap Errors</em></a>.</div></dd><dt><span class="term">-o <em class="replaceable">file_name</em></span></dt><dd><div class="para">Sends the standard output to a file named <em class="replaceable">file_name</em>.</div></dd><dt><span class="term">-S <em class="replaceable">size</em>,<em class="replaceable">count</em></span></dt><dd><div class="para">Limits the maximum size of output files to <em class="replaceable">size</em> megabytes and
@@ -30,7 +30,7 @@
30 <code class="function">target()</code>, refer to <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a>.</div></dd><dt><span class="term">-e '<em class="replaceable">script</em>'</span></dt><dd><div class="para">Uses <em class="replaceable">script</em> rather than a file as input for the SystemTap translator.</div></dd><dt><span class="term">-F</span></dt><dd><div class="para">Uses SystemTap's flight recorder mode and makes the script a 30 <code class="function">target()</code>, refer to <a class="xref" href="systemtapscript-handler.html#systemtapscript-functions">SystemTap Functions</a>.</div></dd><dt><span class="term">-e '<em class="replaceable">script</em>'</span></dt><dd><div class="para">Uses <em class="replaceable">script</em> rather than a file as input for the SystemTap translator.</div></dd><dt><span class="term">-F</span></dt><dd><div class="para">Uses SystemTap's flight recorder mode and makes the script a
31 background process. For more information about flight 31 background process. For more information about flight
32 recorder mode, refer to <a class="xref" href="using-usage.html#flight-recorder">Section 2.3.1, “SystemTap Flight Recorder Mode”</a>.</div></dd></dl></div><div class="para">For more information about the <code class="command">stap</code> command, refer to the <span class="citerefentry"><span class="refentrytitle">stap</span>(1)</span> man page. For more information about the <code class="command">staprun</code> command and cross-instrumentation, refer to <a class="xref" href="cross-compiling.html">Section 2.2, “Generating Instrumentation for Other Computers”</a> or the <span class="citerefentry"><span class="refentrytitle">staprun</span>(8)</span> man page.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="flight-recorder"> 32 recorder mode, refer to <a class="xref" href="using-usage.html#flight-recorder">Section 2.3.1, “SystemTap Flight Recorder Mode”</a>.</div></dd></dl></div><div class="para">For more information about the <code class="command">stap</code> command, refer to the <span class="citerefentry"><span class="refentrytitle">stap</span>(1)</span> man page. For more information about the <code class="command">staprun</code> command and cross-instrumentation, refer to <a class="xref" href="cross-compiling.html">Section 2.2, “Generating Instrumentation for Other Computers”</a> or the <span class="citerefentry"><span class="refentrytitle">staprun</span>(8)</span> man page.</div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="flight-recorder">
33 ⁠</a>2.3.1. SystemTap Flight Recorder Mode</h3></div></div></div><a id="idm140217034699840" class="indexterm"></a><div class="para"> 33 ⁠</a>2.3.1. SystemTap Flight Recorder Mode</h3></div></div></div><a id="idm47006119573056" class="indexterm"></a><div class="para">
34SystemTap's flight recorder mode allows you to run a SystemTap script 34SystemTap's flight recorder mode allows you to run a SystemTap script
35for long periods of time and just focus on recent output. The flight 35for long periods of time and just focus on recent output. The flight
36recorder mode limits the amount of output 36recorder mode limits the amount of output
@@ -41,7 +41,7 @@ There are two variations of the flight recorder mode:
41In both cases, the SystemTap script runs as a 41In both cases, the SystemTap script runs as a
42background process. 42background process.
43</div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="memory-flight-recorder"> 43</div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="memory-flight-recorder">
44 ⁠</a>2.3.1.1. In-memory Flight Recorder</h4></div></div></div><a id="idm140217043794176" class="indexterm"></a><div class="para"> 44 ⁠</a>2.3.1.1. In-memory Flight Recorder</h4></div></div></div><a id="idm47006119821776" class="indexterm"></a><div class="para">
45When flight recorder mode is used without a 45When flight recorder mode is used without a
46file name, SystemTap uses a buffer in kernel memory to store the output of the 46file name, SystemTap uses a buffer in kernel memory to store the output of the
47script. Once the SystemTap instrumentation module is loaded and the probes start 47script. Once the SystemTap instrumentation module is loaded and the probes start
@@ -65,7 +65,7 @@ using the <code class="option">-s</code> option with the size in megabytes (roun
65next power over 2) for the buffer. For example, <code class="option">-s2</code> on the 65next power over 2) for the buffer. For example, <code class="option">-s2</code> on the
66SystemTap command line would specify 2MB for the buffer. 66SystemTap command line would specify 2MB for the buffer.
67</div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="file-flight-recorder"> 67</div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="file-flight-recorder">
68 ⁠</a>2.3.1.2. File Flight Recorder</h4></div></div></div><a id="idm140217037640288" class="indexterm"></a><div class="para"> 68 ⁠</a>2.3.1.2. File Flight Recorder</h4></div></div></div><a id="idm47006119458784" class="indexterm"></a><div class="para">
69The flight recorder mode can also store data to files. You can control the number and size of 69The flight recorder mode can also store data to files. You can control the number and size of
70the files kept by using the <code class="option">-S</code> option followed by two 70the files kept by using the <code class="option">-S</code> option followed by two
71numerical arguments separated by a comma: the first argument is the maximum size 71numerical arguments separated by a comma: the first argument is the maximum size
diff --git a/SystemTap_Beginners_Guide/ustack.html b/SystemTap_Beginners_Guide/ustack.html
index 4d51ab75..f687a7f9 100644
--- a/SystemTap_Beginners_Guide/ustack.html
+++ b/SystemTap_Beginners_Guide/ustack.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.3. User-Space Stack Backtraces</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="utargetvariable.html" title="4.2. Accessing User-Space Target Variables" /><link rel="next" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="utargetvariable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="useful-systemtap-scripts.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="ustack"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.3. User-Space Stack Backtraces</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="utargetvariable.html" title="4.2. Accessing User-Space Target Variables" /><link rel="next" href="useful-systemtap-scripts.html" title="Chapter 5. Useful SystemTap Scripts" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="utargetvariable.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="useful-systemtap-scripts.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="ustack">
3 ⁠</a>4.3. User-Space Stack Backtraces</h2></div></div></div><a id="idm140217036845808" class="indexterm"></a><div class="para"> 3 ⁠</a>4.3. User-Space Stack Backtraces</h2></div></div></div><a id="idm47006126233312" class="indexterm"></a><div class="para">
4 The probe point (<code class="function">pp</code>) function indicates which 4 The probe point (<code class="function">pp</code>) function indicates which
5 particular event triggered the SystemTap event handler. 5 particular event triggered the SystemTap event handler.
6 A probe on the entry into a function would list the function name. 6 A probe on the entry into a function would list the function name.
diff --git a/SystemTap_Beginners_Guide/utargetvariable.html b/SystemTap_Beginners_Guide/utargetvariable.html
index bbd73882..a9de4efc 100644
--- a/SystemTap_Beginners_Guide/utargetvariable.html
+++ b/SystemTap_Beginners_Guide/utargetvariable.html
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.2. Accessing User-Space Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="next" href="ustack.html" title="4.3. User-Space Stack Backtraces" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="userspace-probing.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ustack.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="utargetvariable"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title xmlns:d="http://docbook.org/ns/docbook">4.2. Accessing User-Space Target Variables</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta xmlns:d="http://docbook.org/ns/docbook" name="generator" content="not publican" /><meta xmlns:d="http://docbook.org/ns/docbook" name="package" content="" /><link rel="home" href="index.html" title="SystemTap Beginners Guide" /><link rel="up" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="prev" href="userspace-probing.html" title="Chapter 4. User-space Probing" /><link rel="next" href="ustack.html" title="4.3. User-Space Stack Backtraces" /></head><body><p id="title"></p><ul class="docnav top"><li class="previous"><a accesskey="p" href="userspace-probing.html"><strong>Prev</strong></a></li><li class="home">SystemTap Beginners Guide</li><li class="next"><a accesskey="n" href="ustack.html"><strong>Next</strong></a></li></ul><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="utargetvariable">
3 ⁠</a>4.2. Accessing User-Space Target Variables</h2></div></div></div><a id="idm140217044891136" class="indexterm"></a><div class="para"> 3 ⁠</a>4.2. Accessing User-Space Target Variables</h2></div></div></div><a id="idm47006130087504" class="indexterm"></a><div class="para">
4You can access user-space target variables in the same manner as described in 4You can access user-space target variables in the same manner as described in
5<a class="xref" href="targetvariables.html">Section 3.3.2, “Target Variables”</a>. 5<a class="xref" href="targetvariables.html">Section 3.3.2, “Target Variables”</a>.
6In Linux, however, there are separate address spaces for the user and 6In Linux, however, there are separate address spaces for the user and