tools/perf/util/evsel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
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.
Fixes: 90035d3cd876cb71 ("tools/perf: Allow inherit + PERF_SAMPLE_READ when opening events")
Cc: Ben Gainey <ben.gainey@arm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
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;
--
2.47.0.rc0.187.ge670bccf7e-goog
On Tue, 08 Oct 2024 23:22:50 -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. > > Applied to perf-tools-next, thanks! Best regards, Namhyung
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@arm.com> > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > --- > 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;
On Fri, Oct 11, 2024 at 08:02:04AM +0000, Ben Gainey wrote: > 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 for the review, can I translate it your Acked-by? Thanks, Namhyung > > > > Fixes: 90035d3cd876cb71 ("tools/perf: Allow inherit + > > PERF_SAMPLE_READ when opening events") > > Cc: Ben Gainey <ben.gainey@arm.com> > > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > > --- > > 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; >
On Fri, 2024-10-11 at 09:39 -0700, Namhyung Kim wrote: > On Fri, Oct 11, 2024 at 08:02:04AM +0000, Ben Gainey wrote: > > 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 for the review, can I translate it your Acked-by? > Yes, of course Acked-by: Ben Gainey <ben.gainey@arm.com> :-) > Thanks, > Namhyung > > > > > > > Fixes: 90035d3cd876cb71 ("tools/perf: Allow inherit + > > > PERF_SAMPLE_READ when opening events") > > > Cc: Ben Gainey <ben.gainey@arm.com> > > > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > > > --- > > > 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; > >
© 2016 - 2024 Red Hat, Inc.