Re: [PATCH v2 2/2] perf parse-events: Architecture specific leader override
From: Ian Rogers <irogers@google.com>
Date: 2021-11-19 17:11:57
Also in:
lkml
On Fri, Nov 19, 2021 at 6:47 AM John Garry [off-list ref] wrote:
On 18/11/2021 22:06, Ian Rogers wrote:quoted
Currently topdown events must appear after a slots event: $ perf stat -e '{slots,topdown-fe-bound}' /bin/true Performance counter stats for '/bin/true': 3,183,090 slots 986,133 topdown-fe-bound Reversing the events yields: $ perf stat -e '{topdown-fe-bound,slots}' /bin/true Error: The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (topdown-fe-bound). For metrics the order of events is determined by iterating over a hashmap, and so slots isn't guaranteed to be first which can yield this error. Change the set_leader in parse-events, called when a group is closed, so that rather than always making the first event the leader, if the slots event exists then it is made the leader. It is then moved to the head of the evlist otherwise it won't be opened in the correct order. The result is: $ perf stat -e '{topdown-fe-bound,slots}' /bin/trueJust curious - does this just affect topdown events? I think x86 is the only arch which has them.
The change is specific to x86 as the weak symbol override only happens on x86. For x86 it only applies if the cpu/slots/ event exists. In the future it may be used for more than just this - Kajol Jain mentioned a similar problem for powerpc: https://lore.kernel.org/lkml/6d1fcb97-223d-7d8e-b5cb-0f10dbc62880@linux.ibm.com/ (local) Thanks, Ian
Thanks, John