RE: [PATCH v4 16/16] perf record: Retirement latency cleanup in evsel__config
From: Wang, Weilin
Date: Wed Apr 09 2025 - 23:13:03 EST
> -----Original Message-----
> From: Ian Rogers <irogers@xxxxxxxxxx>
> Sent: Tuesday, April 8, 2025 11:11 PM
> To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>; Ingo Molnar <mingo@xxxxxxxxxx>;
> Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>; Namhyung Kim
> <namhyung@xxxxxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>;
> Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>; Jiri Olsa
> <jolsa@xxxxxxxxxx>; Ian Rogers <irogers@xxxxxxxxxx>; Hunter, Adrian
> <adrian.hunter@xxxxxxxxx>; Kan Liang <kan.liang@xxxxxxxxxxxxxxx>; Wang,
> Weilin <weilin.wang@xxxxxxxxx>; James Clark <james.clark@xxxxxxxxxx>; Xu
> Yang <xu.yang_2@xxxxxxx>; John Garry <john.g.garry@xxxxxxxxxx>; Howard
> Chu <howardchu95@xxxxxxxxx>; Levi Yun <yeoreum.yun@xxxxxxx>;
> Dominique Martinet <asmadeus@xxxxxxxxxxxxx>; linux-perf-
> users@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH v4 16/16] perf record: Retirement latency cleanup in
> evsel__config
>
> Perf record will fail with retirement latency events as the open
> doesn't do a perf_event_open system call. Use evsel__config to set up
> such events for recording by removing the flag and enabling sample
> weights - the sample weights containing the retirement latency.
>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
Tested-by: Weilin Wang <weilin.wang@xxxxxxxxx>
> ---
> tools/perf/util/evsel.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 661a07cbdb25..6a84893e3c58 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -1440,9 +1440,10 @@ void evsel__config(struct evsel *evsel, struct
> record_opts *opts,
> attr->branch_sample_type = opts->branch_stack;
> }
>
> - if (opts->sample_weight)
> + if (opts->sample_weight || evsel->retire_lat) {
> arch_evsel__set_sample_weight(evsel);
> -
> + evsel->retire_lat = false;
> + }
> attr->task = track;
> attr->mmap = track;
> attr->mmap2 = track && !perf_missing_features.mmap2;
> --
> 2.49.0.504.g3bcea36a83-goog