On 08/08/2024 1:58 pm, Adrian Hunter wrote:
On 6/08/24 23:41, Leo Yan wrote:
The auxtrace__evsel_is_auxtrace() function invokes the callback .evsel_is_auxtrace() to check if an event is an AUX trace. In the low-level code, every AUX trace module provides its callback to compare the PMU type.
This commit refactors auxtrace__evsel_is_auxtrace() by simply calling evsel__is_aux_event() rather than using the callback function. As a result, the callback .evsel_is_auxtrace() is no longer needed, so the definition and implementations are removed.
evsel__is_aux_event() assumes it is on the target machine e.g. being called from perf record. It indirectly reads from sysfs to find PMUs, which will not necessarily be the same a different machine.
For example, what happens if a perf data file from one arch is being processed on a machine from another arch.
I think this does go a bit wrong. If I open an SPE file on x86 it finds the intel_pt PMU which both have the same type number. But because that's also an auxtrace one it appears to work.