Re: [PATCH] perf evsel: Fix missing inherit + sample read check

From: Ben Gainey
Date: Fri Oct 11 2024 - 04:02:39 EST


On Tue, 2024-10-08 at 23:22 -0700, Namhyung Kim wrote:
> It should not clear the inherit bit simply because the kernel doesn't
> support the sample read with it.  IOW the inherit bit should be kept
> when the sample read is not requested for the event.


Ah, sorry. Good spot.

Thanks
Ben



>
> Fixes: 90035d3cd876cb71 ("tools/perf: Allow inherit +
> PERF_SAMPLE_READ when opening events")
> Cc: Ben Gainey <ben.gainey@xxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
>  tools/perf/util/evsel.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index d8fd493af01458b7..507f526ccbbcfc36 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -2112,7 +2112,8 @@ static int __evsel__prepare_open(struct evsel
> *evsel, struct perf_cpu_map *cpus,
>  
>  static void evsel__disable_missing_features(struct evsel *evsel)
>  {
> - if (perf_missing_features.inherit_sample_read)
> + if (perf_missing_features.inherit_sample_read && evsel-
> >core.attr.inherit &&
> +     (evsel->core.attr.sample_type & PERF_SAMPLE_READ))
>   evsel->core.attr.inherit = 0;
>   if (perf_missing_features.branch_counters)
>   evsel->core.attr.branch_sample_type &=
> ~PERF_SAMPLE_BRANCH_COUNTERS;