lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fXr62AWU_g=Lymf=8wO-9FF-eEEsoBEYHdqxxdD0qgbnQ@mail.gmail.com>
Date: Mon, 22 Jul 2024 09:16:46 -0700
From: Ian Rogers <irogers@...gle.com>
To: Leo Yan <leo.yan@....com>
Cc: Arnaldo Carvalho de Melo <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>, 
	Adrian Hunter <adrian.hunter@...el.com>, James Clark <james.clark@...aro.org>, 
	Suzuki K Poulose <suzuki.poulose@....com>, Mike Leach <mike.leach@...aro.org>, 
	John Garry <john.g.garry@...cle.com>, Will Deacon <will@...nel.org>, Jiri Olsa <jolsa@...nel.org>, 
	Mark Rutland <mark.rutland@....com>, coresight@...ts.linaro.org, 
	linux-arm-kernel@...ts.infradead.org, linux-perf-users@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 1/6] perf pmu: Directly use evsel's PMU pointer

On Sun, Jul 21, 2024 at 1:21 PM Leo Yan <leo.yan@....com> wrote:
>
> Rather than iterating the whole PMU list for finding the associated PMU
> device for an evsel, this commit optimizes to directly use evsel's 'pmu'
> pointer for accessing PMU device.

The code doesn't do that:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/pmus.c?h=perf-tools-next#n698
```
struct perf_pmu *evsel__find_pmu(const struct evsel *evsel)
{
       struct perf_pmu *pmu = evsel->pmu;

       if (!pmu) {
               pmu = perf_pmus__find_by_type(evsel->core.attr.type);
               ((struct evsel *)evsel)->pmu = pmu;
       }
       return pmu;
}
```
That is, if the evsel->pmu is not NULL then just return it, otherwise
find the pmu using the type from the attribute. Any linear such should
happen at most once unless the pmu is NULL from event parsing or
perf_pmus__find_by_type.  The PMU may be NULL for legacy events and if
sysfs isn't mounted. If you are encountering that then maybe we need a
flag to say don't find the PMU for this evsel as it is known NULL.

Thanks,
Ian

> Signed-off-by: Leo Yan <leo.yan@....com>
> ---
>  tools/perf/util/pmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index 986166bc7c78..798cd5a2ebc4 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -1199,7 +1199,7 @@ void perf_pmu__warn_invalid_formats(struct perf_pmu *pmu)
>
>  bool evsel__is_aux_event(const struct evsel *evsel)
>  {
> -       struct perf_pmu *pmu = evsel__find_pmu(evsel);
> +       struct perf_pmu *pmu = evsel->pmu;
>
>         return pmu && pmu->auxtrace;
>  }
> --
> 2.34.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ