* [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-07 9:26 Shaojie Sun
0 siblings, 0 replies; 7+ messages in thread
From: Shaojie Sun @ 2013-10-07 9:26 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 1385 bytes --]
From: Jon Medhurst <tixy(a)linaro.org>
For cpu_frequency events, perf_power_bundle::handle_trace_point()
is always being called with the same cpunr. so the parameter of
cpunr is not equal to the cpu which cpu_frequency events happened.
Lucky the trace event themselves have a cpu_id field to say to which
CPU event it relates, we should use this cpu_id field.
Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
Shaojie Sun <shaojie.sun(a)linaro.com>
---
src/cpu/cpu.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
index 7f3af69..e304bbe 100644
--- a/src/cpu/cpu.cpp
+++ b/src/cpu/cpu.cpp
@@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
if (strcmp(event->name, "power_frequency") == 0
|| strcmp(event->name, "cpu_frequency") == 0){
-
+ ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
+ if (ret < 0) {
+ fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
+ exit(-1);
+ }
+ cpu = all_cpus[val];
ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
if (ret < 0) {
- fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
+ fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
exit(-1);
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-08 8:58 Shaojie Sun
0 siblings, 0 replies; 7+ messages in thread
From: Shaojie Sun @ 2013-10-08 8:58 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 636 bytes --]
Thanks.
On Tue, Oct 8, 2013 at 4:54 PM, Sergey Senozhatsky
<sergey.senozhatsky(a)gmail.com> wrote:
> Hello,
>
> On (10/08/13 16:45), Shaojie Sun wrote:
>> Hi Sergey
>>
>> I tested in powertop tool and find that there is no cpu_id filed in
>> some perf events. such as sched_switch, hrtimer_expire_exit and so on.
>> so we can't modify this change in src/perf/perf_bundle (perf_sample's
>> perf_event_header).
>>
>> And we didn't find any bugs on other perf events. So we only modified
>> it in src/cpu/cpu.cpp.
>>
>
> thanks. I'll try to find some time today (or tomorrow) to take a look
> on it.
>
> -ss
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-08 8:54 Sergey Senozhatsky
0 siblings, 0 replies; 7+ messages in thread
From: Sergey Senozhatsky @ 2013-10-08 8:54 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 41227 bytes --]
Hello,
On (10/08/13 16:45), Shaojie Sun wrote:
> Hi Sergey
>
> I tested in powertop tool and find that there is no cpu_id filed in
> some perf events. such as sched_switch, hrtimer_expire_exit and so on.
> so we can't modify this change in src/perf/perf_bundle (perf_sample's
> perf_event_header).
>
> And we didn't find any bugs on other perf events. So we only modified
> it in src/cpu/cpu.cpp.
>
thanks. I'll try to find some time today (or tomorrow) to take a look
on it.
-ss
> On Tue, Oct 8, 2013 at 4:17 PM, Jon Medhurst (Tixy) <tixy(a)linaro.org> wrote:
> > On Mon, 2013-10-07 at 22:54 +0800, Shaojie Sun wrote:
> >> add jon.medhurst(a)linaro.org
> >>
> >> On Mon, Oct 7, 2013 at 7:40 PM, Sergey Senozhatsky
> >> <sergey.senozhatsky(a)gmail.com> wrote:
> >> > On (10/07/13 19:31), Shaojie Sun wrote:
> >> >> Date: Mon, 7 Oct 2013 19:31:54 +0800
> >> >> From: Shaojie Sun <shaojie.sun(a)linaro.org>
> >> >> To: Sergey Senozhatsky <sergey.senozhatsky(a)gmail.com>
> >> >> Cc: Sanjay Rawat <sanjay.rawat(a)linaro.org>, Jon Medhurst <tixy(a)linaro.org>,
> >> >> SunShaoJie <sunshaojie(a)huawei.com>, "Private-PMWG(a)Linaro"
> >> >> <private-pmwg(a)linaro.org>
> >> >> Subject: Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop
> >> >> doesn't show correct frequency stats
> >> >>
> >> >> Goog question.
> >> >> Could Tixy answer it?
> >> >
> >> > /** Removed Private-PMWG (no permissions), Cc'd powertop list. */
> >> >
> >> >
> >> >
> >> > the thing is that we tend to trust passed cpunr in many handle_trace_point()-s.
> >> > so it would be better to fix all sample->trace.cpu users, because the
> >> > problme may be a bit bigger than that (e.g. src/process/do_process.cpp
> >> > perf_process_bundle::handle_trace_point()).
> >
> > That's what I thought too and said so when I commented on the Linaro's
> > bug tracking system [1]. I was hoping that someone more familiar with
> > powertop would investigate further as I had never looked at powertop or
> > any perf related code before.
> >
> > [1] https://bugs.launchpad.net/linaro-android/+bug/1042755/comments/14
> >
> > --
> > Tixy
> >
> >> >
> >> > -ss
> >> >
> >> >> On Mon, Oct 7, 2013 at 6:03 PM, Sergey Senozhatsky
> >> >> <sergey.senozhatsky(a)gmail.com> wrote:
> >> >> > On (10/07/13 17:26), Shaojie Sun wrote:
> >> >> >> From: Jon Medhurst <tixy(a)linaro.org>
> >> >> >>
> >> >> >> For cpu_frequency events, perf_power_bundle::handle_trace_point()
> >> >> >> is always being called with the same cpunr. so the parameter of
> >> >> >> cpunr is not equal to the cpu which cpu_frequency events happened.
> >> >> >> Lucky the trace event themselves have a cpu_id field to say to which
> >> >> >> CPU event it relates, we should use this cpu_id field.
> >> >> >>
> >> >> >> Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
> >> >> >> Shaojie Sun <shaojie.sun(a)linaro.com>
> >> >> >> ---
> >> >> >> src/cpu/cpu.cpp | 9 +++++++--
> >> >> >> 1 file changed, 7 insertions(+), 2 deletions(-)
> >> >> >>
> >> >> >> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
> >> >> >> index 7f3af69..e304bbe 100644
> >> >> >> --- a/src/cpu/cpu.cpp
> >> >> >> +++ b/src/cpu/cpu.cpp
> >> >> >> @@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
> >> >> >>
> >> >> >> if (strcmp(event->name, "power_frequency") == 0
> >> >> >> || strcmp(event->name, "cpu_frequency") == 0){
> >> >> >> -
> >> >> >> + ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
> >> >> >> + if (ret < 0) {
> >> >> >> + fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
> >> >> >> + exit(-1);
> >> >> >> + }
> >> >> >> + cpu = all_cpus[val];
> >> >> >> ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
> >> >> >> if (ret < 0) {
> >> >> >> - fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
> >> >> >> + fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
> >> >> >> exit(-1);
> >> >> >> }
> >> >> >
> >> >> > Hello,
> >> >> > why not fixing it in src/perf/perf_bundle (perf_sample's perf_event_header),
> >> >> > where we create data for handle_trace_point() ?
> >> >> >
> >> >> > -ss
> >> >> >
> >> >> >> --
> >> >> >> 1.7.9.5
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> PowerTop mailing list
> >> >> >> PowerTop(a)lists.01.org
> >> >> >> https://lists.01.org/mailman/listinfo/powertop
> >> >> >>
> >> >>
> >
> >
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 175798456, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 3, cpu 6, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 2, cpu 1, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 0, cpu 1, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 0, cpu 1, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 3, cpu 1, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 2, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 1, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 0, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 0, cpu 9, event name softirq_exit.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 9, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 17, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 1, cpu 6, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu -1, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 13, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu -1, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu -1, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu 27164, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 0, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 0, cpu 8, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 3, cpu -1, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 17, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 0, cpu 27164, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu 0, event name sched_wakeup.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 1, cpu 6, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu 8, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 3, cpu 13, event name sched_switch.
> perf find a event not support cpu_id, event name is hrtimer_expire_entry.
> perf cpnnr 0, cpu 1, event name hrtimer_expire_entry.
> perf find a event not support cpu_id, event name is hrtimer_expire_entry.
> perf cpnnr 2, cpu 773908736, event name hrtimer_expire_entry.
> perf find a event not support cpu_id, event name is hrtimer_expire_entry.
> perf cpnnr 3, cpu 774957312, event name hrtimer_expire_entry.
> perf find a event not support cpu_id, event name is hrtimer_expire_entry.
> perf cpnnr 1, cpu 775481600, event name hrtimer_expire_entry.
> perf find a event not support cpu_id, event name is hrtimer_expire_exit.
> perf cpnnr 3, cpu 774433024, event name hrtimer_expire_exit.
> perf find a event not support cpu_id, event name is hrtimer_expire_exit.
> perf cpnnr 2, cpu 775481600, event name hrtimer_expire_exit.
> perf find a event not support cpu_id, event name is hrtimer_expire_exit.
> perf cpnnr 0, cpu 774957312, event name hrtimer_expire_exit.
> perf find a event not support cpu_id, event name is hrtimer_expire_exit.
> perf cpnnr 1, cpu 773908736, event name hrtimer_expire_exit.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 0, cpu 774433024, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 2, cpu 1, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 3, cpu 1, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 0, cpu 1, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 2, cpu 1, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 3, cpu 1, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 2, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 0, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_entry.
> perf cpnnr 3, cpu 9, event name softirq_entry.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 2, cpu 9, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 0, cpu 9, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 1, cpu 9, event name softirq_exit.
> perf find a event not support cpu_id, event name is softirq_exit.
> perf cpnnr 3, cpu 9, event name softirq_exit.
> perf find a event not support cpu_id, event name is sched_switch.
> perf find a event not support cpu_id, event name is hrtimer_expire_entry.
> perf find a event not support cpu_id, event name is sched_wakeup.
> perf cpnnr 2, cpu -1898111448, event name sched_wakeup.
> perf find a event not support cpu_id, event name is hrtimer_expire_exit.
> perf cpnnr 2, cpu 17533, event name hrtimer_expire_exit.
> perf find a event not support cpu_id, event name is sched_switch.
> perf cpnnr 2, cpu -1, event name sched_switch.
> perf find a event not support cpu_id, event name is sched_wakeup.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-08 8:45 Shaojie Sun
0 siblings, 0 replies; 7+ messages in thread
From: Shaojie Sun @ 2013-10-08 8:45 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 4440 bytes --]
Hi Sergey
I tested in powertop tool and find that there is no cpu_id filed in
some perf events. such as sched_switch, hrtimer_expire_exit and so on.
so we can't modify this change in src/perf/perf_bundle (perf_sample's
perf_event_header).
And we didn't find any bugs on other perf events. So we only modified
it in src/cpu/cpu.cpp.
On Tue, Oct 8, 2013 at 4:17 PM, Jon Medhurst (Tixy) <tixy(a)linaro.org> wrote:
> On Mon, 2013-10-07 at 22:54 +0800, Shaojie Sun wrote:
>> add jon.medhurst(a)linaro.org
>>
>> On Mon, Oct 7, 2013 at 7:40 PM, Sergey Senozhatsky
>> <sergey.senozhatsky(a)gmail.com> wrote:
>> > On (10/07/13 19:31), Shaojie Sun wrote:
>> >> Date: Mon, 7 Oct 2013 19:31:54 +0800
>> >> From: Shaojie Sun <shaojie.sun(a)linaro.org>
>> >> To: Sergey Senozhatsky <sergey.senozhatsky(a)gmail.com>
>> >> Cc: Sanjay Rawat <sanjay.rawat(a)linaro.org>, Jon Medhurst <tixy(a)linaro.org>,
>> >> SunShaoJie <sunshaojie(a)huawei.com>, "Private-PMWG(a)Linaro"
>> >> <private-pmwg(a)linaro.org>
>> >> Subject: Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop
>> >> doesn't show correct frequency stats
>> >>
>> >> Goog question.
>> >> Could Tixy answer it?
>> >
>> > /** Removed Private-PMWG (no permissions), Cc'd powertop list. */
>> >
>> >
>> >
>> > the thing is that we tend to trust passed cpunr in many handle_trace_point()-s.
>> > so it would be better to fix all sample->trace.cpu users, because the
>> > problme may be a bit bigger than that (e.g. src/process/do_process.cpp
>> > perf_process_bundle::handle_trace_point()).
>
> That's what I thought too and said so when I commented on the Linaro's
> bug tracking system [1]. I was hoping that someone more familiar with
> powertop would investigate further as I had never looked at powertop or
> any perf related code before.
>
> [1] https://bugs.launchpad.net/linaro-android/+bug/1042755/comments/14
>
> --
> Tixy
>
>> >
>> > -ss
>> >
>> >> On Mon, Oct 7, 2013 at 6:03 PM, Sergey Senozhatsky
>> >> <sergey.senozhatsky(a)gmail.com> wrote:
>> >> > On (10/07/13 17:26), Shaojie Sun wrote:
>> >> >> From: Jon Medhurst <tixy(a)linaro.org>
>> >> >>
>> >> >> For cpu_frequency events, perf_power_bundle::handle_trace_point()
>> >> >> is always being called with the same cpunr. so the parameter of
>> >> >> cpunr is not equal to the cpu which cpu_frequency events happened.
>> >> >> Lucky the trace event themselves have a cpu_id field to say to which
>> >> >> CPU event it relates, we should use this cpu_id field.
>> >> >>
>> >> >> Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
>> >> >> Shaojie Sun <shaojie.sun(a)linaro.com>
>> >> >> ---
>> >> >> src/cpu/cpu.cpp | 9 +++++++--
>> >> >> 1 file changed, 7 insertions(+), 2 deletions(-)
>> >> >>
>> >> >> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
>> >> >> index 7f3af69..e304bbe 100644
>> >> >> --- a/src/cpu/cpu.cpp
>> >> >> +++ b/src/cpu/cpu.cpp
>> >> >> @@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
>> >> >>
>> >> >> if (strcmp(event->name, "power_frequency") == 0
>> >> >> || strcmp(event->name, "cpu_frequency") == 0){
>> >> >> -
>> >> >> + ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
>> >> >> + if (ret < 0) {
>> >> >> + fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
>> >> >> + exit(-1);
>> >> >> + }
>> >> >> + cpu = all_cpus[val];
>> >> >> ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
>> >> >> if (ret < 0) {
>> >> >> - fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
>> >> >> + fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
>> >> >> exit(-1);
>> >> >> }
>> >> >
>> >> > Hello,
>> >> > why not fixing it in src/perf/perf_bundle (perf_sample's perf_event_header),
>> >> > where we create data for handle_trace_point() ?
>> >> >
>> >> > -ss
>> >> >
>> >> >> --
>> >> >> 1.7.9.5
>> >> >>
>> >> >> _______________________________________________
>> >> >> PowerTop mailing list
>> >> >> PowerTop(a)lists.01.org
>> >> >> https://lists.01.org/mailman/listinfo/powertop
>> >> >>
>> >>
>
>
[-- Attachment #2: powertop_log.txt --]
[-- Type: text/plain, Size: 34606 bytes --]
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 175798456, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 3, cpu 6, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 2, cpu 1, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 0, cpu 1, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 0, cpu 1, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 3, cpu 1, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 2, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 1, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 0, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 0, cpu 9, event name softirq_exit.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 9, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 17, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 1, cpu 6, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu -1, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 13, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu -1, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu -1, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu 27164, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 0, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 0, cpu 8, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 3, cpu -1, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 17, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 0, cpu 27164, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu 0, event name sched_wakeup.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 1, cpu 6, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu 8, event name sched_switch.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 3, cpu 13, event name sched_switch.
perf find a event not support cpu_id, event name is hrtimer_expire_entry.
perf cpnnr 0, cpu 1, event name hrtimer_expire_entry.
perf find a event not support cpu_id, event name is hrtimer_expire_entry.
perf cpnnr 2, cpu 773908736, event name hrtimer_expire_entry.
perf find a event not support cpu_id, event name is hrtimer_expire_entry.
perf cpnnr 3, cpu 774957312, event name hrtimer_expire_entry.
perf find a event not support cpu_id, event name is hrtimer_expire_entry.
perf cpnnr 1, cpu 775481600, event name hrtimer_expire_entry.
perf find a event not support cpu_id, event name is hrtimer_expire_exit.
perf cpnnr 3, cpu 774433024, event name hrtimer_expire_exit.
perf find a event not support cpu_id, event name is hrtimer_expire_exit.
perf cpnnr 2, cpu 775481600, event name hrtimer_expire_exit.
perf find a event not support cpu_id, event name is hrtimer_expire_exit.
perf cpnnr 0, cpu 774957312, event name hrtimer_expire_exit.
perf find a event not support cpu_id, event name is hrtimer_expire_exit.
perf cpnnr 1, cpu 773908736, event name hrtimer_expire_exit.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 0, cpu 774433024, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 2, cpu 1, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 3, cpu 1, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 0, cpu 1, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 2, cpu 1, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 3, cpu 1, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 2, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 0, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_entry.
perf cpnnr 3, cpu 9, event name softirq_entry.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 2, cpu 9, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 0, cpu 9, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 1, cpu 9, event name softirq_exit.
perf find a event not support cpu_id, event name is softirq_exit.
perf cpnnr 3, cpu 9, event name softirq_exit.
perf find a event not support cpu_id, event name is sched_switch.
perf find a event not support cpu_id, event name is hrtimer_expire_entry.
perf find a event not support cpu_id, event name is sched_wakeup.
perf cpnnr 2, cpu -1898111448, event name sched_wakeup.
perf find a event not support cpu_id, event name is hrtimer_expire_exit.
perf cpnnr 2, cpu 17533, event name hrtimer_expire_exit.
perf find a event not support cpu_id, event name is sched_switch.
perf cpnnr 2, cpu -1, event name sched_switch.
perf find a event not support cpu_id, event name is sched_wakeup.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-07 14:54 Shaojie Sun
0 siblings, 0 replies; 7+ messages in thread
From: Shaojie Sun @ 2013-10-07 14:54 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 3355 bytes --]
add jon.medhurst(a)linaro.org
On Mon, Oct 7, 2013 at 7:40 PM, Sergey Senozhatsky
<sergey.senozhatsky(a)gmail.com> wrote:
> On (10/07/13 19:31), Shaojie Sun wrote:
>> Date: Mon, 7 Oct 2013 19:31:54 +0800
>> From: Shaojie Sun <shaojie.sun(a)linaro.org>
>> To: Sergey Senozhatsky <sergey.senozhatsky(a)gmail.com>
>> Cc: Sanjay Rawat <sanjay.rawat(a)linaro.org>, Jon Medhurst <tixy(a)linaro.org>,
>> SunShaoJie <sunshaojie(a)huawei.com>, "Private-PMWG(a)Linaro"
>> <private-pmwg(a)linaro.org>
>> Subject: Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop
>> doesn't show correct frequency stats
>>
>> Goog question.
>> Could Tixy answer it?
>
> /** Removed Private-PMWG (no permissions), Cc'd powertop list. */
>
>
>
> the thing is that we tend to trust passed cpunr in many handle_trace_point()-s.
> so it would be better to fix all sample->trace.cpu users, because the
> problme may be a bit bigger than that (e.g. src/process/do_process.cpp
> perf_process_bundle::handle_trace_point()).
>
>
> -ss
>
>> On Mon, Oct 7, 2013 at 6:03 PM, Sergey Senozhatsky
>> <sergey.senozhatsky(a)gmail.com> wrote:
>> > On (10/07/13 17:26), Shaojie Sun wrote:
>> >> From: Jon Medhurst <tixy(a)linaro.org>
>> >>
>> >> For cpu_frequency events, perf_power_bundle::handle_trace_point()
>> >> is always being called with the same cpunr. so the parameter of
>> >> cpunr is not equal to the cpu which cpu_frequency events happened.
>> >> Lucky the trace event themselves have a cpu_id field to say to which
>> >> CPU event it relates, we should use this cpu_id field.
>> >>
>> >> Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
>> >> Shaojie Sun <shaojie.sun(a)linaro.com>
>> >> ---
>> >> src/cpu/cpu.cpp | 9 +++++++--
>> >> 1 file changed, 7 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
>> >> index 7f3af69..e304bbe 100644
>> >> --- a/src/cpu/cpu.cpp
>> >> +++ b/src/cpu/cpu.cpp
>> >> @@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
>> >>
>> >> if (strcmp(event->name, "power_frequency") == 0
>> >> || strcmp(event->name, "cpu_frequency") == 0){
>> >> -
>> >> + ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
>> >> + if (ret < 0) {
>> >> + fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
>> >> + exit(-1);
>> >> + }
>> >> + cpu = all_cpus[val];
>> >> ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
>> >> if (ret < 0) {
>> >> - fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
>> >> + fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
>> >> exit(-1);
>> >> }
>> >
>> > Hello,
>> > why not fixing it in src/perf/perf_bundle (perf_sample's perf_event_header),
>> > where we create data for handle_trace_point() ?
>> >
>> > -ss
>> >
>> >> --
>> >> 1.7.9.5
>> >>
>> >> _______________________________________________
>> >> PowerTop mailing list
>> >> PowerTop(a)lists.01.org
>> >> https://lists.01.org/mailman/listinfo/powertop
>> >>
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-07 11:40 Sergey Senozhatsky
0 siblings, 0 replies; 7+ messages in thread
From: Sergey Senozhatsky @ 2013-10-07 11:40 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 3138 bytes --]
On (10/07/13 19:31), Shaojie Sun wrote:
> Date: Mon, 7 Oct 2013 19:31:54 +0800
> From: Shaojie Sun <shaojie.sun(a)linaro.org>
> To: Sergey Senozhatsky <sergey.senozhatsky(a)gmail.com>
> Cc: Sanjay Rawat <sanjay.rawat(a)linaro.org>, Jon Medhurst <tixy(a)linaro.org>,
> SunShaoJie <sunshaojie(a)huawei.com>, "Private-PMWG(a)Linaro"
> <private-pmwg(a)linaro.org>
> Subject: Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop
> doesn't show correct frequency stats
>
> Goog question.
> Could Tixy answer it?
/** Removed Private-PMWG (no permissions), Cc'd powertop list. */
the thing is that we tend to trust passed cpunr in many handle_trace_point()-s.
so it would be better to fix all sample->trace.cpu users, because the
problme may be a bit bigger than that (e.g. src/process/do_process.cpp
perf_process_bundle::handle_trace_point()).
-ss
> On Mon, Oct 7, 2013 at 6:03 PM, Sergey Senozhatsky
> <sergey.senozhatsky(a)gmail.com> wrote:
> > On (10/07/13 17:26), Shaojie Sun wrote:
> >> From: Jon Medhurst <tixy(a)linaro.org>
> >>
> >> For cpu_frequency events, perf_power_bundle::handle_trace_point()
> >> is always being called with the same cpunr. so the parameter of
> >> cpunr is not equal to the cpu which cpu_frequency events happened.
> >> Lucky the trace event themselves have a cpu_id field to say to which
> >> CPU event it relates, we should use this cpu_id field.
> >>
> >> Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
> >> Shaojie Sun <shaojie.sun(a)linaro.com>
> >> ---
> >> src/cpu/cpu.cpp | 9 +++++++--
> >> 1 file changed, 7 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
> >> index 7f3af69..e304bbe 100644
> >> --- a/src/cpu/cpu.cpp
> >> +++ b/src/cpu/cpu.cpp
> >> @@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
> >>
> >> if (strcmp(event->name, "power_frequency") == 0
> >> || strcmp(event->name, "cpu_frequency") == 0){
> >> -
> >> + ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
> >> + if (ret < 0) {
> >> + fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
> >> + exit(-1);
> >> + }
> >> + cpu = all_cpus[val];
> >> ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
> >> if (ret < 0) {
> >> - fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
> >> + fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
> >> exit(-1);
> >> }
> >
> > Hello,
> > why not fixing it in src/perf/perf_bundle (perf_sample's perf_event_header),
> > where we create data for handle_trace_point() ?
> >
> > -ss
> >
> >> --
> >> 1.7.9.5
> >>
> >> _______________________________________________
> >> PowerTop mailing list
> >> PowerTop(a)lists.01.org
> >> https://lists.01.org/mailman/listinfo/powertop
> >>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats
@ 2013-10-07 10:03 Sergey Senozhatsky
0 siblings, 0 replies; 7+ messages in thread
From: Sergey Senozhatsky @ 2013-10-07 10:03 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 1803 bytes --]
On (10/07/13 17:26), Shaojie Sun wrote:
> From: Jon Medhurst <tixy(a)linaro.org>
>
> For cpu_frequency events, perf_power_bundle::handle_trace_point()
> is always being called with the same cpunr. so the parameter of
> cpunr is not equal to the cpu which cpu_frequency events happened.
> Lucky the trace event themselves have a cpu_id field to say to which
> CPU event it relates, we should use this cpu_id field.
>
> Signed-off-by: Jon Medhurst <tixy(a)linaro.org>
> Shaojie Sun <shaojie.sun(a)linaro.com>
> ---
> src/cpu/cpu.cpp | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
> index 7f3af69..e304bbe 100644
> --- a/src/cpu/cpu.cpp
> +++ b/src/cpu/cpu.cpp
> @@ -781,10 +781,15 @@ void perf_power_bundle::handle_trace_point(void *trace, int cpunr, uint64_t time
>
> if (strcmp(event->name, "power_frequency") == 0
> || strcmp(event->name, "cpu_frequency") == 0){
> -
> + ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &val, 0);
> + if (ret < 0) {
> + fprintf(stderr, _("power or cpu_frequency event returned no cpu?\n"));
> + exit(-1);
> + }
> + cpu = all_cpus[val];
> ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
> if (ret < 0) {
> - fprintf(stderr, _("power or cpu_frequecny event returned no state?\n"));
> + fprintf(stderr, _("power or cpu_frequency event returned no state?\n"));
> exit(-1);
> }
Hello,
why not fixing it in src/perf/perf_bundle (perf_sample's perf_event_header),
where we create data for handle_trace_point() ?
-ss
> --
> 1.7.9.5
>
> _______________________________________________
> PowerTop mailing list
> PowerTop(a)lists.01.org
> https://lists.01.org/mailman/listinfo/powertop
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-10-08 8:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-07 9:26 [Powertop] [PATCH POWERTOP V3] resolve the bug that powertop doesn't show correct frequency stats Shaojie Sun
2013-10-07 10:03 Sergey Senozhatsky
2013-10-07 11:40 Sergey Senozhatsky
2013-10-07 14:54 Shaojie Sun
2013-10-08 8:45 Shaojie Sun
2013-10-08 8:54 Sergey Senozhatsky
2013-10-08 8:58 Shaojie Sun
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.