On Wed, Aug 20, 2014 at 03:36:06PM +0300, Alexander Shishkin wrote:

> diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
> index 925f369947..5006caba63 100644
> --- a/kernel/events/ring_buffer.c
> +++ b/kernel/events/ring_buffer.c

> @@ -294,9 +295,22 @@ void perf_aux_output_end(struct perf_output_handle 
> *handle, unsigned long size,
>                        bool truncated)
>  {
>       struct ring_buffer *rb = handle->rb;
> +     unsigned long aux_head;
>  
> +     aux_head = local_read(&rb->aux_head);
> +
> +     if (rb->aux_overwrite) {
> +             local_set(&rb->aux_head, size);
> +
> +             /*
> +              * Send a RECORD_AUX with size==0 to communicate aux_head
> +              * of this snapshot to userspace
> +              */
> +             perf_event_aux_event(handle->event, size, 0, truncated);

Humm.. why not write a 'normal' AUX record?

Also, you didn't mention this in your Changelog _at_all_.

> +     } else {
> +             local_add(size, &rb->aux_head);
> +             perf_event_aux_event(handle->event, aux_head, size, truncated);
> +     }
>  
>       smp_wmb();
>       rb->user_page->aux_head = local_read(&rb->aux_head);

Attachment: pgp9queIcnNL1.pgp
Description: PGP signature

Reply via email to