summaryrefslogtreecommitdiff
path: root/tools/perf/util
diff options
context:
space:
mode:
authorJames Clark <james.clark@arm.com>2020-11-26 16:13:28 +0200
committerArnaldo Carvalho de Melo <acme@redhat.com>2020-12-24 10:05:28 -0300
commit8d4852b468c38168c4e1e1652602b4a6c6c080b3 (patch)
treea25ee98aa0d65cb9c30294f242cd72213ff671e1 /tools/perf/util
parentb993381779da406ca9ca0ae1e1b3968e9075ce77 (diff)
perf stat aggregation: Add separate thread member
A separate field isn't strictly required. The core field could be re-used for thread IDs as a single field was used previously. But separating them will avoid confusion and catch potential errors where core IDs are read as thread IDs and vice versa. Also remove the placeholder id field which is now no longer used. Signed-off-by: James Clark <james.clark@arm.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@redhat.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Tested-by: John Garry <john.garry@huawei.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Richter <tmricht@linux.ibm.com> Link: https://lore.kernel.org/r/20201126141328.6509-13-james.clark@arm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/cpumap.c14
-rw-r--r--tools/perf/util/cpumap.h2
-rw-r--r--tools/perf/util/stat-display.c8
3 files changed, 12 insertions, 12 deletions
diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c
index d164f7bd1ac7..87d3eca9b872 100644
--- a/tools/perf/util/cpumap.c
+++ b/tools/perf/util/cpumap.c
@@ -148,16 +148,16 @@ static int cmp_aggr_cpu_id(const void *a_pointer, const void *b_pointer)
struct aggr_cpu_id *a = (struct aggr_cpu_id *)a_pointer;
struct aggr_cpu_id *b = (struct aggr_cpu_id *)b_pointer;
- if (a->id != b->id)
- return a->id - b->id;
- else if (a->node != b->node)
+ if (a->node != b->node)
return a->node - b->node;
else if (a->socket != b->socket)
return a->socket - b->socket;
else if (a->die != b->die)
return a->die - b->die;
- else
+ else if (a->core != b->core)
return a->core - b->core;
+ else
+ return a->thread - b->thread;
}
int cpu_map__build_map(struct perf_cpu_map *cpus, struct cpu_aggr_map **res,
@@ -616,7 +616,7 @@ const struct perf_cpu_map *cpu_map__online(void) /* thread unsafe */
bool cpu_map__compare_aggr_cpu_id(struct aggr_cpu_id a, struct aggr_cpu_id b)
{
- return a.id == b.id &&
+ return a.thread == b.thread &&
a.node == b.node &&
a.socket == b.socket &&
a.die == b.die &&
@@ -625,7 +625,7 @@ bool cpu_map__compare_aggr_cpu_id(struct aggr_cpu_id a, struct aggr_cpu_id b)
bool cpu_map__aggr_cpu_id_is_empty(struct aggr_cpu_id a)
{
- return a.id == -1 &&
+ return a.thread == -1 &&
a.node == -1 &&
a.socket == -1 &&
a.die == -1 &&
@@ -635,7 +635,7 @@ bool cpu_map__aggr_cpu_id_is_empty(struct aggr_cpu_id a)
struct aggr_cpu_id cpu_map__empty_aggr_cpu_id(void)
{
struct aggr_cpu_id ret = {
- .id = -1,
+ .thread = -1,
.node = -1,
.socket = -1,
.die = -1,
diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h
index 1bb8f7d47206..a27eeaf086e8 100644
--- a/tools/perf/util/cpumap.h
+++ b/tools/perf/util/cpumap.h
@@ -8,7 +8,7 @@
#include <perf/cpumap.h>
struct aggr_cpu_id {
- int id;
+ int thread;
int node;
int socket;
int die;
diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
index 2b3842f6080d..583ae4f09c5d 100644
--- a/tools/perf/util/stat-display.c
+++ b/tools/perf/util/stat-display.c
@@ -127,9 +127,9 @@ static void aggr_printout(struct perf_stat_config *config,
case AGGR_THREAD:
fprintf(config->output, "%*s-%*d%s",
config->csv_output ? 0 : 16,
- perf_thread_map__comm(evsel->core.threads, id.id),
+ perf_thread_map__comm(evsel->core.threads, id.thread),
config->csv_output ? 0 : -8,
- perf_thread_map__pid(evsel->core.threads, id.id),
+ perf_thread_map__pid(evsel->core.threads, id.thread),
config->csv_sep);
break;
case AGGR_GLOBAL:
@@ -740,7 +740,7 @@ static struct perf_aggr_thread_value *sort_aggr_thread(
buf[i].counter = counter;
buf[i].id = cpu_map__empty_aggr_cpu_id();
- buf[i].id.id = thread;
+ buf[i].id.thread = thread;
buf[i].uval = uval;
buf[i].val = val;
buf[i].run = run;
@@ -781,7 +781,7 @@ static void print_aggr_thread(struct perf_stat_config *config,
if (config->stats)
printout(config, id, 0, buf[thread].counter, buf[thread].uval,
prefix, buf[thread].run, buf[thread].ena, 1.0,
- &config->stats[id.id]);
+ &config->stats[id.thread]);
else
printout(config, id, 0, buf[thread].counter, buf[thread].uval,
prefix, buf[thread].run, buf[thread].ena, 1.0,