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>
This commit is contained in:
Родитель
e853072055
Коммит
54b08f5f90
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче