[Powertop] hrtimer events are not properly added -- is this bug or feature?
Igor Zhbanov <i.zhbanov at samsung.com> Tue, 24 Jul 2012 11:24:07 +0400
| Newsgroups | dev.linux.lists.powertop |
|---|---|
| Message-ID | <[email protected]> |
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.
--
Best regards,
Igor Zhbanov,
Expert Software Engineer,
phone: +7 (495) 797 25 00 ext 3806
e-mail: i.zhbanov(a)samsung.com
ASWG, Moscow R&D center, Samsung Electronics
12 Dvintsev street, building 1
127018, Moscow, Russian Federation