<br><br><div class="gmail_quote">On Tue, Oct 4, 2011 at 9:53 AM, Peter Teoh <span dir="ltr">&lt;<a href="mailto:htmldeveloper@gmail.com">htmldeveloper@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>On Sun, Oct 2, 2011 at 5:07 AM, Zheng Da &lt;<a href="mailto:zhengda1936@gmail.com" target="_blank">zhengda1936@gmail.com</a>&gt; wrote:<br>&gt; Hello,<br>&gt;<br>&gt; I start to use perf to profile my program, but I&#39;m not quite sure if I<br>

&gt; understand some events.<br><br></div>Firstly perf is using hardware to read these performance information.   So for intel CPU, depending on the different model, u can find the relevant information in the reference manual from Intel here:<br>

<br><a href="http://www.intel.com/Assets/en_US/PDF/manual/248966.pdf" target="_blank">http://www.intel.com/Assets/en_US/PDF/manual/248966.pdf</a><br><br>In particular, the various model of Intel CPU is listed in page xvii, and along with it are the various performance information u can extract out - the last item is the BUS information (B.6.10).<div>
<div></div><div class="h5"><br>
<br>&gt; First, perf can profile bus cycles. Is it the bus cycles of FSB?<br>&gt; Second, what is task clock? It seems to me that task clock is the<br></div></div></blockquote><div><br></div><div>task clock, from reading the implementation in kernel/events/core.c, i suspect is a software event, not hardware.   Ie, it counts upon each task switch.   To quote from core.c:</div>
<div><br></div><div><div>/*</div><div> * Software event: task time clock</div><div> */</div><div><br></div><div>static void task_clock_event_update(struct perf_event *event, u64 now)</div><div>{</div></div><div><br></div>
<div><br></div><div><div>More details here:</div></div><div><br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://lwn.net/Articles/312720/">http://lwn.net/Articles/312720/</a></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="h5">&gt; ticks used by a process. It should include the ticks used in the<br>
&gt; kernel mode and the user space mode, as long as it is used in the<br>&gt; context of the process. I suppose it doesn&#39;t count the cycles used by<br>&gt; the interrupts such as page faults and softirq, even though the irqs<br>

&gt; are caused by the process. Is it correct?<br></div></div></blockquote><div><br></div><div>on the contrary, i think it should include, as to exclude these cycles does entail stopping the hrtimer.....read into core.c further.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="h5">&gt;<br>&gt; Thanks,<br>&gt; Da<br>&gt;<br>&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>&gt;<br><br><br><br></div></div><font color="#888888">-- <br>
Regards,<br>Peter Teoh<br><br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh<br>