This is a whitespace cleanup for the DTrace chapter.

No content changes, so translators can ignore it.

Submitted by:	Dru Lavigne
This commit is contained in:
Benedict Reuschling 2013-01-19 21:28:38 +00:00
parent 0f8202f821
commit 51b3707186
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40686

View file

@ -34,18 +34,18 @@ that might make this chapter too large.
<see>&dtrace;</see>
</indexterm>
<para>&dtrace;, also known as Dynamic Tracing, was developed by
&sun; as a tool for locating performance bottlenecks
in production and pre-production systems. It is not, in any way,
a debugging tool, but a tool for real time system analysis to
locate performance and other issues.</para>
<para>&dtrace;, also known as Dynamic Tracing, was developed by
&sun; as a tool for locating performance bottlenecks in
production and pre-production systems. It is not, in any way,
a debugging tool, but a tool for real time system analysis to
locate performance and other issues.</para>
<para>&dtrace; is a remarkable profiling tool, with an impressive
array of features for diagnosing system issues. It may also be
used to run pre-written scripts to take advantage of its
capabilities. Users may even author their own utilities using
the &dtrace; D Language, allowing them to customize their profiling
based on specific needs.</para>
<para>&dtrace; is a remarkable profiling tool, with an impressive
array of features for diagnosing system issues. It may also
be used to run pre-written scripts to take advantage of its
capabilities. Users may even author their own utilities using
the &dtrace; D Language, allowing them to customize their
profiling based on specific needs.</para>
<para>After reading this chapter, you will know:</para>
@ -55,8 +55,8 @@ that might make this chapter too large.
</listitem>
<listitem>
<para>Differences between the &solaris; &dtrace; implementation
and the one provided by &os;.</para>
<para>Differences between the &solaris; &dtrace;
implementation and the one provided by &os;.</para>
</listitem>
<listitem>
@ -136,20 +136,22 @@ that might make this chapter too large.
<para>Only <username>root</username> may use &dtrace; on &os;.
This is related to security differences, &solaris; has a few
low level security checks which do not yet exist in &os;. As
such, the <devicename>/dev/dtrace/dtrace</devicename> is strictly
limited to <username>root</username> users only.</para>
such, the <devicename>/dev/dtrace/dtrace</devicename> is
strictly limited to <username>root</username> users only.</para>
<para>Finally, the &dtrace; software falls under &sun;'s
<acronym>CDDL</acronym> license. The <literal>Common Development
and Distribution License</literal> comes with &os;, see the
<acronym>CDDL</acronym> license. The <literal>Common
Development and Distribution License</literal> comes with &os;,
see the
<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
or view it online at
<ulink url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
<ulink
url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
<para>This license means that a &os; kernel with the &dtrace; options
is still <acronym>BSD</acronym> licensed; however the
<acronym>CDDL</acronym> kicks in when the modules are distributed
in binary form, or the binaries are loaded.</para>
<para>This license means that a &os; kernel with the &dtrace;
options is still <acronym>BSD</acronym> licensed; however
the <acronym>CDDL</acronym> kicks in when the modules are
distributed in binary form, or the binaries are loaded.</para>
</sect1>
<sect1 id="dtrace-enable">
@ -167,12 +169,14 @@ options DDB_CTF</programlisting>
<programlisting>options KDTRACE_FRAME</programlisting>
<para>This option provides support for the <acronym>FBT</acronym>
feature. &dtrace; will work without this option; however, there
will be limited support for function boundary tracing.</para>
</note>
<para>This option provides support for the
<acronym>FBT</acronym> feature. &dtrace; will work without
this option; however, there will be limited support for
function boundary tracing.</para>
</note>
<para>All sources must be rebuilt and installed with <acronym>CTF</acronym> options.
<para>All sources must be rebuilt and installed with
<acronym>CTF</acronym> options.
To accomplish this task, rebuild the &os; sources using:</para>
<!-- XXXTR: WITH_CTF has been reported to leave a user with a
@ -203,20 +207,22 @@ options DDB_CTF</programlisting>
If you are running FreeBSD 10, you will find the &dtrace;Toolkit
in <filename>/usr/share/dtrace</filename>.
Otherwise, you can install the &dtrace;Toolkit using the
<filename role="package">sysutils/DTraceToolkit</filename> port.</para>
<filename role="package">sysutils/DTraceToolkit</filename>
port.</para>
</sect1>
<sect1 id="dtrace-using">
<title>Using &dtrace;</title>
<para>Before making use of &dtrace; functionality, the &dtrace; device
must exist. To load the device, issue the following
<para>Before making use of &dtrace; functionality, the &dtrace;
device must exist. To load the device, issue the following
command:</para>
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
<para>&dtrace; support should now be available. To view all probes
the administrator may now execute the following command:</para>
<para>&dtrace; support should now be available. To view all
probes the administrator may now execute the following
command:</para>
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
@ -272,9 +278,9 @@ Sampling... Hit Ctrl-C to end.</screen>
<para>The system administrator must use the
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>C</keycap>
</keycombo> key combination to stop the process. Upon
termination, the script will display a list of kernel functions and
timing information, sorting the output in increasing order of
time:</para>
termination, the script will display a list of kernel functions
and timing information, sorting the output in increasing order
of time:</para>
<screen>kernel`_thread_lock_flags 2 0.0%
0xc1097063 2 0.0%
@ -308,7 +314,8 @@ kernel`sched_idletd 137 0.3%
how we should look that up. -->
<para>This script will also work with kernel modules. To use this
feature, run the script with the <option>-m</option> flag:</para>
feature, run the script with the <option>-m</option>
flag:</para>
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
Sampling... Hit Ctrl-C to end.
@ -366,20 +373,22 @@ Elapsed Times for processes csh,
sigsuspend 6985124
read 3988049784</screen>
<para>As shown, the <function>read()</function> system call seems to use the
most time in nanoseconds with the <function>getpid()</function>
system call used the least amount of time.</para>
<para>As shown, the <function>read()</function> system call
seems to use the most time in nanoseconds with the
<function>getpid()</function> system call used the least amount
of time.</para>
</sect1>
<sect1 id="dtrace-language">
<title>The D Language</title>
<para>The &dtrace; Toolkit includes many scripts in the special language of
&dtrace;. This language is called <quote>the D language</quote> by &sun;
documentation, and it is very similar to C++. An in depth
discussion of the language is beyond the scope of this document. It is
extensively discussed
at <ulink url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
<para>The &dtrace; Toolkit includes many scripts in the special
language of &dtrace;. This language is called <quote>the D
language</quote> by &sun; documentation, and it is very similar
to C++. An in depth discussion of the language is beyond the
scope of this document. It is extensively discussed
at <ulink
url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
</sect1>
</chapter>