diff mbox series

[V9,06/13] perf tools: Enable evsel__is_aux_event() to work for S390_CPUMSF

Message ID 20240715160712.127117-7-adrian.hunter@intel.com (mailing list archive)
State New, archived
Headers show
Series [V9,01/13] perf/x86/intel/pt: Fix sampling synchronization | expand

Commit Message

Adrian Hunter July 15, 2024, 4:07 p.m. UTC
evsel__is_aux_event() identifies AUX area tracing selected events.

S390_CPUMSF uses a raw event type (PERF_TYPE_RAW - refer
s390_cpumsf_evsel_is_auxtrace()) not a PMU type value that could be checked
in evsel__is_aux_event(). However it sets needs_auxtrace_mmap (refer
auxtrace_record__init()), so check that first.

Currently, the features that use evsel__is_aux_event() are used only by
Intel PT, but that may change in the future.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ian Rogers <irogers@google.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
---
 tools/perf/util/pmu.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Leo Yan July 23, 2024, 8:26 a.m. UTC | #1
On 7/15/2024 5:07 PM, Adrian Hunter wrote:
> 
> evsel__is_aux_event() identifies AUX area tracing selected events.
> 
> S390_CPUMSF uses a raw event type (PERF_TYPE_RAW - refer
> s390_cpumsf_evsel_is_auxtrace()) not a PMU type value that could be checked
> in evsel__is_aux_event(). However it sets needs_auxtrace_mmap (refer
> auxtrace_record__init()), so check that first.
> 
> Currently, the features that use evsel__is_aux_event() are used only by
> Intel PT, but that may change in the future.
> 
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> Acked-by: Ian Rogers <irogers@google.com>
> Reviewed-by: Andi Kleen <ak@linux.intel.com>

Reviewed-by: Leo Yan <leo.yan@arm.com>

> ---
>  tools/perf/util/pmu.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index 986166bc7c78..0b38c51bd6eb 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -1199,8 +1199,12 @@ 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;
> 
> +       if (evsel->needs_auxtrace_mmap)
> +               return true;
> +
> +       pmu = evsel__find_pmu(evsel);
>         return pmu && pmu->auxtrace;
>  }
> 
> --
> 2.34.1
> 
>
Adrian Hunter July 23, 2024, 9:09 a.m. UTC | #2
On 23/07/24 11:26, Leo Yan wrote:
> On 7/15/2024 5:07 PM, Adrian Hunter wrote:
>>
>> evsel__is_aux_event() identifies AUX area tracing selected events.
>>
>> S390_CPUMSF uses a raw event type (PERF_TYPE_RAW - refer
>> s390_cpumsf_evsel_is_auxtrace()) not a PMU type value that could be checked
>> in evsel__is_aux_event(). However it sets needs_auxtrace_mmap (refer
>> auxtrace_record__init()), so check that first.
>>
>> Currently, the features that use evsel__is_aux_event() are used only by
>> Intel PT, but that may change in the future.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
>> Acked-by: Ian Rogers <irogers@google.com>
>> Reviewed-by: Andi Kleen <ak@linux.intel.com>
> 
> Reviewed-by: Leo Yan <leo.yan@arm.com>

Namhyung, could we get patches 5 and 6 from this series
applied?  They are independent and Leo's new patch set is
dependent on patch 5.

> 
>> ---
>>  tools/perf/util/pmu.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
>> index 986166bc7c78..0b38c51bd6eb 100644
>> --- a/tools/perf/util/pmu.c
>> +++ b/tools/perf/util/pmu.c
>> @@ -1199,8 +1199,12 @@ 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;
>>
>> +       if (evsel->needs_auxtrace_mmap)
>> +               return true;
>> +
>> +       pmu = evsel__find_pmu(evsel);
>>         return pmu && pmu->auxtrace;
>>  }
>>
>> --
>> 2.34.1
>>
>>
Arnaldo Carvalho de Melo July 26, 2024, 2:46 p.m. UTC | #3
On Tue, Jul 23, 2024 at 12:09:46PM +0300, Adrian Hunter wrote:
> On 23/07/24 11:26, Leo Yan wrote:
> > On 7/15/2024 5:07 PM, Adrian Hunter wrote:
> >>
> >> evsel__is_aux_event() identifies AUX area tracing selected events.
> >>
> >> S390_CPUMSF uses a raw event type (PERF_TYPE_RAW - refer
> >> s390_cpumsf_evsel_is_auxtrace()) not a PMU type value that could be checked
> >> in evsel__is_aux_event(). However it sets needs_auxtrace_mmap (refer
> >> auxtrace_record__init()), so check that first.
> >>
> >> Currently, the features that use evsel__is_aux_event() are used only by
> >> Intel PT, but that may change in the future.
> >>
> >> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> >> Acked-by: Ian Rogers <irogers@google.com>
> >> Reviewed-by: Andi Kleen <ak@linux.intel.com>
> > 
> > Reviewed-by: Leo Yan <leo.yan@arm.com>
> 
> Namhyung, could we get patches 5 and 6 from this series
> applied?  They are independent and Leo's new patch set is
> dependent on patch 5.

I'm getting those two into tmp.perf-tools-next, probably should pick the
rest as peterz has the kernel bits already in his queue.git/perf/core,
right?

- Arnaldo
 
> > 
> >> ---
> >>  tools/perf/util/pmu.c | 6 +++++-
> >>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> >> index 986166bc7c78..0b38c51bd6eb 100644
> >> --- a/tools/perf/util/pmu.c
> >> +++ b/tools/perf/util/pmu.c
> >> @@ -1199,8 +1199,12 @@ 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;
> >>
> >> +       if (evsel->needs_auxtrace_mmap)
> >> +               return true;
> >> +
> >> +       pmu = evsel__find_pmu(evsel);
> >>         return pmu && pmu->auxtrace;
> >>  }
> >>
> >> --
> >> 2.34.1
> >>
> >>
diff mbox series

Patch

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 986166bc7c78..0b38c51bd6eb 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1199,8 +1199,12 @@  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;
 
+	if (evsel->needs_auxtrace_mmap)
+		return true;
+
+	pmu = evsel__find_pmu(evsel);
 	return pmu && pmu->auxtrace;
 }