Messages in this thread | | | From | Ian Rogers <> | Date | Sat, 7 Oct 2023 22:49:25 -0700 | Subject | Re: [PATCH v1 6/7] perf pmu-events: Remember the events and metrics table |
| |
On Sat, Oct 7, 2023 at 8:39 PM Yang Jihong <yangjihong1@huawei.com> wrote: > > 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?
Agreed, the behavior will match the existing behavior. Longer term I want to remove this code. Do you have a scenario we should optimize for here?
Thanks, Ian
> Thanks, > Yang
| |