Re: [PATCH v4 06/22] perf: Redirect output from inherited events to parents

From: Peter Zijlstra
Date: Mon Sep 08 2014 - 11:27:07 EST


On Wed, Aug 20, 2014 at 03:36:03PM +0300, Alexander Shishkin wrote:
> In order to collect AUX data from an inherited event, we can redirect its
> output to parent's ring buffer if possible (they must be cpu affine). This
> patch adds set_output() to the inheritance path.
>
> Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> ---
> kernel/events/core.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 67f857ab56..e36478564c 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -7962,6 +7962,12 @@ inherit_event(struct perf_event *parent_event,
> = parent_event->overflow_handler_context;
>
> /*
> + * Direct child's output to parent's ring buffer (if any)
> + */
> + if (parent_event->cpu != -1)
> + (void)perf_event_set_output(child_event, parent_event);
> +
> + /*
> * Precalculate sample_data sizes
> */
> perf_event__header_size(child_event);

Uhm, nope, see perf_output_begin(), it always redirects output to parent
events.

Attachment: pgp67ARdh_Equ.pgp
Description: PGP signature