Re: [PATCH] perf: Fix inheritance of aux_output groups

From: Ingo Molnar
Date: Mon Oct 07 2019 - 10:50:06 EST



* Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> wrote:

> Commit
>
> b43762ef010 ("perf: Allow normal events to output AUX data")

Missing 'a', the proper SHA1 is:

ab43762ef010 ("perf: Allow normal events to output AUX data")

:-)

> forgets to configure aux_output relation in the inherited groups, which
> results in child PEBS events forever failing to schedule.
>
> Fix this by setting up the AUX output link in the inheritance path.
>
> Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> ---
> kernel/events/core.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index f5bb2557d5f6..761995f21b30 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -12024,6 +12024,10 @@ static int inherit_group(struct perf_event *parent_event,
> child, leader, child_ctx);
> if (IS_ERR(child_ctr))
> return PTR_ERR(child_ctr);
> +
> + if (sub->aux_event == parent_event &&
> + !perf_get_aux_event(child_ctr, leader))
> + return -EINVAL;

Could this explain weird 'perf top' failures I'm seeing on my desktop,
which I was just about to debug and report?

Thanks,

Ingo