From: Yang Jihong <yangjihong1@huawei.com>
To: Ian Rogers <irogers@google.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Mike Leach <mike.leach@linaro.org>,
James Clark <james.clark@arm.com>, Leo Yan <leo.yan@linaro.org>,
John Garry <john.g.garry@oracle.com>,
Will Deacon <will@kernel.org>,
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>,
Adrian Hunter <adrian.hunter@intel.com>,
Thomas Richter <tmricht@linux.ibm.com>,
Ravi Bangoria <ravi.bangoria@amd.com>,
Kajol Jain <kjain@linux.ibm.com>,
Jing Zhang <renyu.zj@linux.alibaba.com>,
Kan Liang <kan.liang@linux.intel.com>,
<coresight@lists.linaro.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-perf-users@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v1 6/7] perf pmu-events: Remember the events and metrics table
Date: Sun, 8 Oct 2023 11:39:20 +0800 [thread overview]
Message-ID: <39b28ad5-8086-76ed-a4c6-bfc8271d226b@huawei.com> (raw)
In-Reply-To: <20231007021326.4156714-7-irogers@google.com>
Hello,
On 2023/10/7 10:13, Ian Rogers wrote:
> strcmp_cpuid_str performs regular expression comparisons. Avoid
> repeated computation of the table by remembering the table in a
> static.
>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> tools/perf/pmu-events/jevents.py | 48 +++++++++++++++++++-------------
> 1 file changed, 28 insertions(+), 20 deletions(-)
>
> diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
> index fd009752b427..8d8d5088c53c 100755
> --- a/tools/perf/pmu-events/jevents.py
> +++ b/tools/perf/pmu-events/jevents.py
> @@ -978,28 +978,32 @@ int pmu_metrics_table__for_each_metric(const struct pmu_metrics_table *table,
>
> const struct pmu_events_table *perf_pmu__find_events_table(struct perf_pmu *pmu)
> {
> - const struct pmu_events_table *table = NULL;
> - char *cpuid = perf_pmu__getcpuid(pmu);
> + static const struct pmu_events_table *table;
> size_t i;
>
> - /* on some platforms which uses cpus map, cpuid can be NULL for
> - * PMUs other than CORE PMUs.
> - */
> - if (!cpuid)
> - return NULL;
> -
> - i = 0;
> - for (;;) {
> - const struct pmu_events_map *map = &pmu_events_map[i++];
> - if (!map->arch)
> - break;
> -
> - if (!strcmp_cpuid_str(map->cpuid, cpuid)) {
> - table = &map->event_table;
> - break;
> + if (!table) {
If there is no matched table in pmu_events_map,
perf_pmu__find_events_table() will enter this branch for repeated search
each time.
Or do we need to use another variable to indicate whether the search has
been performed?
Thanks,
Yang
next prev parent reply other threads:[~2023-10-08 3:39 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-07 2:13 [PATCH v1 0/7] PMU performance improvements Ian Rogers
2023-10-07 2:13 ` [PATCH v1 1/7] perf pmu: Rename perf_pmu__get_default_config to perf_pmu__arch_init Ian Rogers
2023-10-12 11:51 ` Adrian Hunter
2023-10-12 15:23 ` Ian Rogers
2023-10-07 2:13 ` [PATCH v1 2/7] perf intel-pt: Move PMU initialization from default config code Ian Rogers
2023-10-12 11:52 ` Adrian Hunter
2023-10-07 2:13 ` [PATCH v1 3/7] perf arm-spe: " Ian Rogers
2023-10-12 11:52 ` Adrian Hunter
2023-10-07 2:13 ` [PATCH v1 4/7] perf pmu: Const-ify file APIs Ian Rogers
2023-10-12 11:52 ` Adrian Hunter
2023-10-07 2:13 ` [PATCH v1 5/7] perf pmu: Const-ify perf_pmu__config_terms Ian Rogers
2023-10-12 11:53 ` Adrian Hunter
2023-10-07 2:13 ` [PATCH v1 6/7] perf pmu-events: Remember the events and metrics table Ian Rogers
2023-10-08 3:39 ` Yang Jihong [this message]
2023-10-08 5:49 ` Ian Rogers
2023-10-08 9:36 ` Yang Jihong
2023-10-12 11:53 ` Adrian Hunter
2023-10-07 2:13 ` [PATCH v1 7/7] perf pmu: Lazily compute default config Ian Rogers
2023-10-12 11:53 ` Adrian Hunter
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=39b28ad5-8086-76ed-a4c6-bfc8271d226b@huawei.com \
--to=yangjihong1@huawei.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=coresight@lists.linaro.org \
--cc=irogers@google.com \
--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=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=suzuki.poulose@arm.com \
--cc=tmricht@linux.ibm.com \
--cc=will@kernel.org \
/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
all inboxes | Powered by JetHome®