[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