Re: [PATCH 0/4] perf_event: introduce 'perf timer' to analyze timer's behavior

Frederic Weisbecker
2009-12-15T14:15:43Z

On Tue, Dec 15, 2009 at 07:17:03PM +0800, Xiao Guangrong wrote:
> Hi,
>
> We introduce 'perf timer' in this patchset, it can analyze timer
> latency and timer function handle time, the usage and result is
> like below:
>
> # perf timer record
> # perf timer lat --print-lat --print-handle
> -------------------------------------------------------------------------------------------------------
> | Timer | TYPE | Avg-latency | Max-latency | Max-latency-at-TS |Max-lat-at-Task |
> |0xf7ad1f5c |hrtimer |996068.500 ns|1607650 ns|10270128658526 |init |
> |0xf7903f04 |timer |0.625 HZ|2 HZ|10270344082394 |swapper |
> |0xf787a05c |hrtimer |200239.500 ns|359929 ns|10269316024808 |main |
> |main :[ PROF]|itimer |0.000 HZ|0 HZ|10237021270557 |main |
> |main :[VIRTUAL]|itimer |0.000 HZ|0 HZ|10257314773501 |main |

Cool! This is really a good work and a good idea.

Just have some neats in mind. hrtimers and timers don't have the same latency and
granularity requirements.

As you show it, timers have an HZ granularity and hrtimers are about nanoseconds,
and mixing them up in the same array of latency report is too messy.
They don't have the same granularity/latency scope so they should
be reported separately.

Otherwise it's like mixing slothes and flies latency results after
a fly swat attack test ;-)