On Tue, Oct 4, 2011 at 9:53 AM, Peter Teoh <htmldeveloper@gmail.com> wrote:
On Sun, Oct 2, 2011 at 5:07 AM, Zheng Da <zhengda1936@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.
Thanks, Da
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh