From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4B79C388F7 for ; Fri, 13 Nov 2020 17:28:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7522C21D1A for ; Fri, 13 Nov 2020 17:28:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726092AbgKMR2K (ORCPT ); Fri, 13 Nov 2020 12:28:10 -0500 Received: from foss.arm.com ([217.140.110.172]:42392 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726678AbgKMR1a (ORCPT ); Fri, 13 Nov 2020 12:27:30 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7E038153B; Fri, 13 Nov 2020 09:27:30 -0800 (PST) Received: from e121896.arm.com (unknown [10.57.58.204]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id ACCFF3F718; Fri, 13 Nov 2020 09:27:28 -0800 (PST) From: James Clark To: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, jolsa@redhat.com Cc: james.clark@arm.com, Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Namhyung Kim , Thomas Richter , John Garry Subject: [PATCH 08/13 v4] perf tools: Start using cpu_aggr_id in map Date: Fri, 13 Nov 2020 19:26:49 +0200 Message-Id: <20201113172654.989-9-james.clark@arm.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201113172654.989-1-james.clark@arm.com> References: <20201113172654.989-1-james.clark@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Use the new cpu_aggr_id struct in the cpu map instead of int so that it can store more data. No functional changes. Signed-off-by: James Clark Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Mark Rutland Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Thomas Richter Cc: John Garry --- tools/perf/builtin-stat.c | 6 +++--- tools/perf/util/cpumap.c | 8 ++++---- tools/perf/util/cpumap.h | 2 +- tools/perf/util/stat-display.c | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 344e50651b55..afe9fa6112b6 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -1223,10 +1223,10 @@ static struct aggr_cpu_id perf_stat__get_aggr(struct perf_stat_config *config, cpu = map->map[idx]; - if (config->cpus_aggr_map->map[cpu] == -1) - config->cpus_aggr_map->map[cpu] = get_id(config, map, idx).id; + if (cpu_map__aggr_cpu_id_is_empty(config->cpus_aggr_map->map[cpu])) + config->cpus_aggr_map->map[cpu] = get_id(config, map, idx); - id.id = config->cpus_aggr_map->map[cpu]; + id = config->cpus_aggr_map->map[cpu]; return id; } diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c index e90270f0be57..0f42e6a6b704 100644 --- a/tools/perf/util/cpumap.c +++ b/tools/perf/util/cpumap.c @@ -97,14 +97,14 @@ struct perf_cpu_map *perf_cpu_map__empty_new(int nr) struct cpu_aggr_map *cpu_aggr_map__empty_new(int nr) { - struct cpu_aggr_map *cpus = malloc(sizeof(*cpus) + sizeof(int) * nr); + struct cpu_aggr_map *cpus = malloc(sizeof(*cpus) + sizeof(struct aggr_cpu_id) * nr); if (cpus != NULL) { int i; cpus->nr = nr; for (i = 0; i < nr; i++) - cpus->map[i] = -1; + cpus->map[i] = cpu_map__empty_aggr_cpu_id(); refcount_set(&cpus->refcnt, 1); } @@ -169,11 +169,11 @@ int cpu_map__build_map(struct perf_cpu_map *cpus, struct cpu_aggr_map **res, for (cpu = 0; cpu < nr; cpu++) { s1 = f(cpus, cpu, data); for (s2 = 0; s2 < c->nr; s2++) { - if (s1.id == c->map[s2]) + if (cpu_map__compare_aggr_cpu_id(s1, c->map[s2])) break; } if (s2 == c->nr) { - c->map[c->nr] = s1.id; + c->map[c->nr] = s1; c->nr++; } } diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h index b112069038be..d8fc265bc762 100644 --- a/tools/perf/util/cpumap.h +++ b/tools/perf/util/cpumap.h @@ -14,7 +14,7 @@ struct aggr_cpu_id { struct cpu_aggr_map { refcount_t refcnt; int nr; - int map[]; + struct aggr_cpu_id map[]; }; struct perf_record_cpu_map_data; diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index 01acb7d5e120..ad91e8a7d5af 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -509,7 +509,7 @@ static void aggr_update_shadow(struct perf_stat_config *config, struct evsel *counter; for (s = 0; s < config->aggr_map->nr; s++) { - id.id = config->aggr_map->map[s]; + id = config->aggr_map->map[s]; evlist__for_each_entry(evlist, counter) { val = 0; for (cpu = 0; cpu < evsel__nr_cpus(counter); cpu++) { @@ -641,7 +641,7 @@ static void print_counter_aggrdata(struct perf_stat_config *config, struct aggr_cpu_id id; double uval; - ad.id.id = id.id = config->aggr_map->map[s]; + ad.id = id = config->aggr_map->map[s]; ad.val = ad.ena = ad.run = 0; ad.nr = 0; if (!collect_data(config, counter, aggr_cb, &ad)) @@ -1167,7 +1167,7 @@ static void print_percore_thread(struct perf_stat_config *config, for (int i = 0; i < evsel__nr_cpus(counter); i++) { s2 = config->aggr_get_id(config, evsel__cpus(counter), i); for (s = 0; s < config->aggr_map->nr; s++) { - id.id = config->aggr_map->map[s]; + id = config->aggr_map->map[s]; if (cpu_map__compare_aggr_cpu_id(s2, id)) break; } -- 2.28.0