interpret the result of perf stat

Peter Teoh htmldeveloper at gmail.com
Sat Oct 8 11:18:49 EDT 2011


On Thu, Oct 6, 2011 at 10:39 PM, Zheng Da <zhengda1936 at gmail.com> wrote:

> Thank you, Peter. I didn't realize Intel has explained all performance
> counters in its manual, and I was desperately looking for more
> detailed explanation on the Internet.
>
> On Mon, Oct 3, 2011 at 11:19 PM, Peter Teoh <htmldeveloper at gmail.com>
> wrote:
> >
> >
> > On Tue, Oct 4, 2011 at 9:53 AM, Peter Teoh <htmldeveloper at gmail.com>
> wrote:
> >>
> >> On Sun, Oct 2, 2011 at 5:07 AM, Zheng Da <zhengda1936 at gmail.com> wrote:
> >> > Hello,
> >> >
> >> > I start to use perf to profile my program, but I'm not quite sure if I
> >> > understand some events.
> >>
> >> 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:
> >>
> >> http://www.intel.com/Assets/en_US/PDF/manual/248966.pdf
> >>
> >> 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).
> >>
> >> > First, perf can profile bus cycles. Is it the bus cycles of FSB?
> >> > Second, what is task clock? It seems to me that task clock is the
> >
> > 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:
> > /*
> >  * Software event: task time clock
> >  */
> > static void task_clock_event_update(struct perf_event *event, u64 now)
> > {
> >
> > More details here:
> > http://lwn.net/Articles/312720/
> >
> >>
> >> > ticks used by a process. It should include the ticks used in the
> >> > kernel mode and the user space mode, as long as it is used in the
> >> > context of the process. I suppose it doesn't count the cycles used by
> >> > the interrupts such as page faults and softirq, even though the irqs
> >> > are caused by the process. Is it correct?
> >
> > on the contrary, i think it should include, as to exclude these cycles
> does
> > entail stopping the hrtimer.....read into core.c further.
> I'm disappointed that the information isn't documented somewhere. The
> developers shouldn't expect users to read the code to understand how
> to use the tool :(
>
>
i suspect it is documented in many places, at here is one good one:

http://developer.apple.com/library/IOS/#documentation/DeveloperTools/Conceptual/SharkUserGuide/MiscellaneousTopics/MiscellaneousTopics.html#//apple_ref/doc/uid/TP40005233-CH14-SW3

and from the side, looking at Appendix A, u can see a table of all the
PerfCounters for ARM11, and then another section will list out for Intel,
and then PPC etc.....


> BTW, is there any wiki where people can share what they found in the
> kernel?
>
> Thanks,
> Da
>



-- 
Regards,
Peter Teoh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111008/9128c2c3/attachment-0001.html 


More information about the Kernelnewbies mailing list