Re: [Powertop] hrtimer events are not properly added -- is this bug or feature?

Chris Ferron <chris.e.ferron at linux.intel.com> Wed, 25 Jul 2012 10:45:47 -0700
Newsgroups dev.linux.lists.powertop
Message-ID <[email protected]>
On 07/24/2012 12:24 AM, Igor Zhbanov wrote:
> Hello!
>
> In the function start_process_measurement() in the file 
> src/process/do_process.cpp
> events are added to perf_bundle:
>         perf_events->add_event("irq:softirq_entry");
>         perf_events->add_event("irq:softirq_exit");
>         perf_events->add_event("timer:timer_expire_entry");
>         perf_events->add_event("timer:timer_expire_exit");
>         perf_events->add_event("hrtimer_expire_entry"); /* !!! */
>         perf_events->add_event("hrtimer_expire_exit"); /* !!! */
>         if (!perf_events->add_event("power:cpu_idle")){
>             perf_events->add_event("power:power_start");
>             perf_events->add_event("power:power_end");
>         }
>
> As you may see all events are prefixed with the subsystem name.
> All but hrtimer_expire_entry and hrtimer_expire_exit. And without 
> "timer:" prefix
> these events are never catched.
>
> So I have added this prefix and see that events are intercepted as 
> needed.
> But event parser complains about wrong event format:
>   unknown op '{'
>   failed to read event print fmt for hrtimer_expire_entry
>
> It seems that event parser can't handle square bracket in print format 
> for the event:
> print fmt: "hrtimer=%p function=%pf now=%llu", REC->hrtimer, 
> REC->function, (unsigned long long)(((ktime_t) { .tv64 = REC->now 
> }).tv64)
>
> So is the absence of "timer:" prefix a bug or a commenting of 
> non-working case?
>
> Thank you.
>
Im looking into this