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