Messages in this thread Patch in this message | | | From | Thomas Renninger <> | Subject | [PATCH] perf: timechart -> fix max number of cpus | Date | Sun, 27 Feb 2011 22:36:46 +0100 |
| |
Currently numcpus is determined in pid_put_sample which is only called on sched_switch/sched_wakeup sample processing.
On a machine with a lot cpus I often saw the last cpu missing.
Check for (max) numcpus on every event happening and in the beginning. -> fixes the issue for me.
Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> CC: Arjan van de Ven <arjan@linux.intel.com> CC: mingo@elte.hu --- tools/perf/builtin-timechart.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index 746cf03..0ace786 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c @@ -264,9 +264,6 @@ pid_put_sample(int pid, int type, unsigned int cpu, u64 start, u64 end) c->start_time = start; if (p->start_time == 0 || p->start_time > start) p->start_time = start; - - if (cpu > numcpus) - numcpus = cpu; } #define MAX_CPUS 4096 @@ -511,6 +508,9 @@ static int process_sample_event(event_t *event __used, if (!event_str) return 0; + if (sample->cpu > numcpus) + numcpus = sample->cpu; + if (strcmp(event_str, "power:cpu_idle") == 0) { struct power_processor_entry *ppe = (void *)te; if (ppe->state == (u32)PWR_EVENT_EXIT) -- 1.7.3.4
| |