<?xml version='1.0'?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>


	<section id="threadtimessect">
		<title>Determining Time Spent in Kernel and User Space</title>
<indexterm>
<primary>script examples</primary>
<secondary>determining time spent in kernel and user space</secondary>
</indexterm>

<indexterm>
<primary>examples of SystemTap scripts</primary>
<secondary>determining time spent in kernel and user space</secondary>
</indexterm>

<indexterm>
<primary>determining time spent in kernel and user space</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
	<primary>time spent in kernel/user space, determining</primary>
	<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
	<primary>kernel and user space, determining time spent in</primary>
	<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
	<primary>user and kernel space, determining time spent in</primary>
	<secondary>examples of SystemTap scripts</secondary>
</indexterm>

<remark>
	http://sourceware.org/systemtap/examples/profiling/thread-times.stp
</remark>


<para>This section illustrates how to determine the amount of time any given thread is spending in either kernel or user-space.</para>

<formalpara id="threadtimes">
		<title>thread-times.stp</title>
<para>
<programlisting><xi:include parse="text" href="../testsuite/systemtap.examples/profiling/thread-times.stp" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
</para>
</formalpara>
<indexterm>
	<primary>script examples</primary>
	<secondary>CPU ticks</secondary>
</indexterm>

<indexterm>
	<primary>examples of SystemTap scripts</primary>
	<secondary>CPU ticks</secondary>
</indexterm>

<indexterm>
	<primary>CPU ticks</primary>
	<secondary>examples of SystemTap scripts</secondary>
</indexterm>

<para><xref linkend="threadtimes"/> 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. </para>

<para><xref linkend="threadtimesoutput"/> contains a 5-second sample of the output for <xref linkend="threadtimes"/>:</para>

<example id="threadtimesoutput">
	<title><xref linkend="threadtimes"/> Sample Output</title>
<screen>  tid   %user %kernel (of 20002 ticks)
    0   0.00%  87.88%
32169   5.24%   0.03%
 9815   3.33%   0.36%
 9859   0.95%   0.00%
 3611   0.56%   0.12%
 9861   0.62%   0.01%
11106   0.37%   0.02%
32167   0.08%   0.08%
 3897   0.01%   0.08%
 3800   0.03%   0.00%
 2886   0.02%   0.00%
 3243   0.00%   0.01%
 3862   0.01%   0.00%
 3782   0.00%   0.00%
21767   0.00%   0.00%
 2522   0.00%   0.00%
 3883   0.00%   0.00%
 3775   0.00%   0.00%
 3943   0.00%   0.00%
 3873   0.00%   0.00%</screen>
</example>

	</section>

