Thread (7 messages) 7 messages, 4 authors, 2021-11-30

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/true
Just 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help