perf timechart: Fix max number of cpus
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: Arjan van de Ven <arjan@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Cc: lenb@kernel.org LKML-Reference: <1298842606-55712-6-git-send-email-trenn@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>hifive-unleashed-5.1
parent
e853072055
commit
54b08f5f90
|
@ -264,9 +264,6 @@ pid_put_sample(int pid, int type, unsigned int cpu, u64 start, u64 end)
|
||||||
c->start_time = start;
|
c->start_time = start;
|
||||||
if (p->start_time == 0 || p->start_time > start)
|
if (p->start_time == 0 || p->start_time > start)
|
||||||
p->start_time = start;
|
p->start_time = start;
|
||||||
|
|
||||||
if (cpu > numcpus)
|
|
||||||
numcpus = cpu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_CPUS 4096
|
#define MAX_CPUS 4096
|
||||||
|
@ -511,6 +508,9 @@ static int process_sample_event(event_t *event __used,
|
||||||
if (!event_str)
|
if (!event_str)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (sample->cpu > numcpus)
|
||||||
|
numcpus = sample->cpu;
|
||||||
|
|
||||||
if (strcmp(event_str, "power:cpu_idle") == 0) {
|
if (strcmp(event_str, "power:cpu_idle") == 0) {
|
||||||
struct power_processor_entry *ppe = (void *)te;
|
struct power_processor_entry *ppe = (void *)te;
|
||||||
if (ppe->state == (u32)PWR_EVENT_EXIT)
|
if (ppe->state == (u32)PWR_EVENT_EXIT)
|
||||||
|
|
Loading…
Reference in New Issue