From: Ian Rogers <irogers@google.com>
To: Suzuki K Poulose <suzuki.poulose@arm.com>,
Mike Leach <mike.leach@linaro.org>, Leo Yan <leo.yan@linaro.org>,
John Garry <john.g.garry@oracle.com>,
Will Deacon <will@kernel.org>, James Clark <james.clark@arm.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Kajol Jain <kjain@linux.ibm.com>,
Jing Zhang <renyu.zj@linux.alibaba.com>,
Kan Liang <kan.liang@linux.intel.com>,
Zhengjun Xing <zhengjun.xing@linux.intel.com>,
Ravi Bangoria <ravi.bangoria@amd.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
Ming Wang <wangming01@loongson.cn>,
Huacai Chen <chenhuacai@kernel.org>,
Sandipan Das <sandipan.das@amd.com>,
Dmitrii Dolgov <9erthalion6@gmail.com>,
Sean Christopherson <seanjc@google.com>,
Ali Saidi <alisaidi@amazon.com>, Rob Herring <robh@kernel.org>,
Thomas Richter <tmricht@linux.ibm.com>,
Kang Minchul <tegongkang@gmail.com>,
linux-kernel@vger.kernel.org, coresight@lists.linaro.org,
linux-arm-kernel@lists.infradead.org,
linux-perf-users@vger.kernel.org
Subject: [PATCH v4 25/35] perf pmu: Remove perf_pmu__hybrid_pmus list
Date: Fri, 26 May 2023 14:54:00 -0700 [thread overview]
Message-ID: <20230526215410.2435674-26-irogers@google.com> (raw)
In-Reply-To: <20230526215410.2435674-1-irogers@google.com>
Rather than iterate hybrid PMUs, inhererently Intel specific, iterate
all PMUs checking whether they are core. To only get hybrid cores,
first call perf_pmu__has_hybrid.
Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
---
tools/perf/builtin-record.c | 1 -
tools/perf/util/Build | 1 -
tools/perf/util/pmu-hybrid.c | 39 ------------------------------
tools/perf/util/pmu-hybrid.h | 29 ----------------------
tools/perf/util/pmu.c | 7 ------
tools/perf/util/pmu.h | 2 --
tools/perf/util/print-events.c | 1 -
tools/perf/util/python-ext-sources | 1 -
8 files changed, 81 deletions(-)
delete mode 100644 tools/perf/util/pmu-hybrid.c
delete mode 100644 tools/perf/util/pmu-hybrid.h
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index e30e8d6a6575..2abcad2998f6 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -49,7 +49,6 @@
#include "util/util.h"
#include "util/pfm.h"
#include "util/clockid.h"
-#include "util/pmu-hybrid.h"
#include "util/off_cpu.h"
#include "util/bpf-filter.h"
#include "asm/bug.h"
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 21e4cdcba504..0d68be51a739 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -73,7 +73,6 @@ perf-y += pmu.o
perf-y += pmus.o
perf-y += pmu-flex.o
perf-y += pmu-bison.o
-perf-y += pmu-hybrid.o
perf-y += svghelper.o
perf-$(CONFIG_LIBTRACEEVENT) += trace-event-info.o
perf-y += trace-event-scripting.o
diff --git a/tools/perf/util/pmu-hybrid.c b/tools/perf/util/pmu-hybrid.c
deleted file mode 100644
index 7fe943dd3217..000000000000
--- a/tools/perf/util/pmu-hybrid.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/list.h>
-#include <linux/compiler.h>
-#include <linux/string.h>
-#include <linux/zalloc.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdbool.h>
-#include <stdarg.h>
-#include <locale.h>
-#include <api/fs/fs.h>
-#include "fncache.h"
-#include "pmu-hybrid.h"
-
-LIST_HEAD(perf_pmu__hybrid_pmus);
-
-static struct perf_pmu *perf_pmu__find_hybrid_pmu(const char *name)
-{
- struct perf_pmu *pmu;
-
- if (!name)
- return NULL;
-
- perf_pmu__for_each_hybrid_pmu(pmu) {
- if (!strcmp(name, pmu->name))
- return pmu;
- }
-
- return NULL;
-}
-
-bool perf_pmu__is_hybrid(const char *name)
-{
- return perf_pmu__find_hybrid_pmu(name) != NULL;
-}
diff --git a/tools/perf/util/pmu-hybrid.h b/tools/perf/util/pmu-hybrid.h
deleted file mode 100644
index 8dbcae935020..000000000000
--- a/tools/perf/util/pmu-hybrid.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __PMU_HYBRID_H
-#define __PMU_HYBRID_H
-
-#include <linux/perf_event.h>
-#include <linux/compiler.h>
-#include <linux/list.h>
-#include <stdbool.h>
-#include "pmu.h"
-
-extern struct list_head perf_pmu__hybrid_pmus;
-
-#define perf_pmu__for_each_hybrid_pmu(pmu) \
- list_for_each_entry(pmu, &perf_pmu__hybrid_pmus, hybrid_list)
-
-bool perf_pmu__is_hybrid(const char *name);
-
-static inline int perf_pmu__hybrid_pmu_num(void)
-{
- struct perf_pmu *pmu;
- int num = 0;
-
- perf_pmu__for_each_hybrid_pmu(pmu)
- num++;
-
- return num;
-}
-
-#endif /* __PMU_HYBRID_H */
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 65daa0cc71d6..21ee23b78f5a 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -32,7 +32,6 @@
#include "string2.h"
#include "strbuf.h"
#include "fncache.h"
-#include "pmu-hybrid.h"
#include "util/evsel_config.h"
struct perf_pmu perf_pmu__fake;
@@ -954,11 +953,6 @@ static struct perf_pmu *pmu_lookup(int dirfd, const char *lookup_name)
list_splice(&aliases, &pmu->aliases);
list_add_tail(&pmu->list, &pmus);
- if (!strcmp(name, "cpu_core") || !strcmp(name, "cpu_atom"))
- list_add_tail(&pmu->hybrid_list, &perf_pmu__hybrid_pmus);
- else
- INIT_LIST_HEAD(&pmu->hybrid_list);
-
pmu->default_config = perf_pmu__get_default_config(pmu);
return pmu;
@@ -2131,7 +2125,6 @@ void perf_pmu__destroy(void)
list_for_each_entry_safe(pmu, tmp, &pmus, list) {
list_del(&pmu->list);
- list_del(&pmu->hybrid_list);
perf_pmu__delete(pmu);
}
diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h
index 5f5de7c20ab6..cb51ad6e40fa 100644
--- a/tools/perf/util/pmu.h
+++ b/tools/perf/util/pmu.h
@@ -119,8 +119,6 @@ struct perf_pmu {
struct list_head caps;
/** @list: Element on pmus list in pmu.c. */
struct list_head list;
- /** @hybrid_list: Element on perf_pmu__hybrid_pmus. */
- struct list_head hybrid_list;
/**
* @missing_features: Features to inhibit when events on this PMU are
diff --git a/tools/perf/util/print-events.c b/tools/perf/util/print-events.c
index 69492cbd6921..8d823bc906e6 100644
--- a/tools/perf/util/print-events.c
+++ b/tools/perf/util/print-events.c
@@ -26,7 +26,6 @@
#include "strlist.h"
#include "tracepoint.h"
#include "pfm.h"
-#include "pmu-hybrid.h"
#include "thread_map.h"
#define MAX_NAME_LEN 100
diff --git a/tools/perf/util/python-ext-sources b/tools/perf/util/python-ext-sources
index aa5156c2bcff..d4c9b4cd35ef 100644
--- a/tools/perf/util/python-ext-sources
+++ b/tools/perf/util/python-ext-sources
@@ -39,5 +39,4 @@ util/affinity.c
util/rwsem.c
util/hashmap.c
util/perf_regs.c
-util/pmu-hybrid.c
util/fncache.c
--
2.41.0.rc0.172.g3f132b7071-goog
next prev parent reply other threads:[~2023-05-26 21:56 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-26 21:53 [PATCH v4 00/35] PMU refactoring and improvements Ian Rogers
2023-05-26 21:53 ` [PATCH v4 01/35] perf cpumap: Add intersect function Ian Rogers
2023-05-26 21:53 ` [PATCH v4 02/35] perf tests: Organize cpu_map tests into a single suite Ian Rogers
2023-05-26 21:53 ` [PATCH v4 03/35] perf cpumap: Add equal function Ian Rogers
2023-05-27 1:32 ` Arnaldo Carvalho de Melo
2023-05-27 1:40 ` Arnaldo Carvalho de Melo
2023-05-27 6:05 ` Ian Rogers
2023-05-26 21:53 ` [PATCH v4 04/35] libperf cpumap: Add "any CPU"/dummy test function Ian Rogers
2023-05-26 21:53 ` [PATCH v4 05/35] perf pmu: Detect ARM and hybrid PMUs with sysfs Ian Rogers
2023-05-26 21:53 ` [PATCH v4 06/35] perf pmu: Add is_core to pmu Ian Rogers
2023-05-26 21:53 ` [PATCH v4 07/35] perf evsel: Add is_pmu_core inorder to interpret own_cpus Ian Rogers
2023-05-26 21:53 ` [PATCH v4 08/35] perf pmu: Add CPU map for "cpu" PMUs Ian Rogers
2023-05-26 21:53 ` [PATCH v4 09/35] perf evlist: Propagate user CPU maps intersecting core PMU maps Ian Rogers
2023-05-26 21:53 ` [PATCH v4 10/35] perf evlist: Allow has_user_cpus to be set on hybrid Ian Rogers
2023-05-26 21:53 ` [PATCH v4 11/35] perf target: Remove unused hybrid value Ian Rogers
2023-05-26 21:53 ` [PATCH v4 12/35] perf tools: Warn if no user requested CPUs match PMU's CPUs Ian Rogers
2023-05-26 21:53 ` [PATCH v4 13/35] perf evlist: Remove evlist__warn_hybrid_group Ian Rogers
2023-05-26 21:53 ` [PATCH v4 14/35] perf evlist: Remove __evlist__add_default Ian Rogers
2023-05-27 1:45 ` Arnaldo Carvalho de Melo
2023-05-27 5:58 ` Ian Rogers
2023-05-26 21:53 ` [PATCH v4 15/35] perf evlist: Reduce scope of evlist__has_hybrid Ian Rogers
2023-05-26 21:53 ` [PATCH v4 16/35] perf pmu: Remove perf_pmu__hybrid_mounted Ian Rogers
2023-05-26 21:53 ` [PATCH v4 17/35] perf pmu: Rewrite perf_pmu__has_hybrid to avoid list Ian Rogers
2023-05-26 21:53 ` [PATCH v4 18/35] perf x86: Iterate hybrid PMUs as core PMUs Ian Rogers
2023-05-26 21:53 ` [PATCH v4 19/35] perf topology: Avoid hybrid list for hybrid topology Ian Rogers
2023-05-26 21:53 ` [PATCH v4 20/35] perf evsel: Compute is_hybrid from PMU being core Ian Rogers
2023-05-26 21:53 ` [PATCH v4 21/35] perf header: Avoid hybrid PMU list in write_pmu_caps Ian Rogers
2023-05-26 21:53 ` [PATCH v4 22/35] perf metrics: Remove perf_pmu__is_hybrid use Ian Rogers
2023-05-26 21:53 ` [PATCH v4 23/35] perf stat: Avoid hybrid PMU list Ian Rogers
2023-05-26 21:53 ` [PATCH v4 24/35] perf mem: " Ian Rogers
2023-05-26 21:54 ` Ian Rogers [this message]
2023-05-26 21:54 ` [PATCH v4 26/35] perf pmus: Prefer perf_pmu__scan over perf_pmus__for_each_pmu Ian Rogers
2023-05-26 21:54 ` [PATCH v4 27/35] perf x86 mem: minor refactor to is_mem_loads_aux_event Ian Rogers
2023-05-26 21:54 ` [PATCH v4 28/35] perf pmu: Separate pmu and pmus Ian Rogers
2023-05-26 21:54 ` [PATCH v4 29/35] perf pmus: Split pmus list into core and other Ian Rogers
2023-05-26 21:54 ` [PATCH v4 30/35] perf pmus: Allow just core PMU scanning Ian Rogers
2023-05-26 21:54 ` [PATCH v4 31/35] perf pmus: Avoid repeated sysfs scanning Ian Rogers
2023-05-26 21:54 ` [PATCH v4 32/35] perf pmus: Ensure all PMUs are read for find_by_type Ian Rogers
2023-05-26 21:54 ` [PATCH v4 33/35] perf pmus: Add function to return count of core PMUs Ian Rogers
2023-05-26 21:54 ` [PATCH v4 34/35] perf pmus: Remove perf_pmus__has_hybrid Ian Rogers
2023-05-26 21:54 ` [PATCH v4 35/35] perf pmu: Remove is_pmu_hybrid Ian Rogers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230526215410.2435674-26-irogers@google.com \
--to=irogers@google.com \
--cc=9erthalion6@gmail.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=alisaidi@amazon.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=chenhuacai@kernel.org \
--cc=coresight@lists.linaro.org \
--cc=james.clark@arm.com \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kjain@linux.ibm.com \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=maddy@linux.ibm.com \
--cc=mark.rutland@arm.com \
--cc=mike.leach@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=renyu.zj@linux.alibaba.com \
--cc=robh@kernel.org \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=suzuki.poulose@arm.com \
--cc=tegongkang@gmail.com \
--cc=tmricht@linux.ibm.com \
--cc=wangming01@loongson.cn \
--cc=will@kernel.org \
--cc=zhengjun.xing@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).