Re: [PATCH 2/2] perf: Disable the event on a truncated AUX record

From: Peter Zijlstra
Date: Wed May 11 2016 - 05:13:50 EST


On Tue, May 10, 2016 at 04:18:33PM +0300, Alexander Shishkin wrote:
> When the PMU driver reports a truncated AUX record, it effectively means
> that there is no more usable room in the event's AUX buffer (even though
> there may still be some room, so that perf_aux_output_begin() doesn't take
> action). At this point the consumer still has to be woken up and the event
> has to be disabled, otherwise the event will just keep spinning between
> perf_aux_output_begin() and perf_aux_output_end() until its context gets
> unscheduled.
>
> Again, for cpu-wide events this means never, so once in this condition,
> they will be forever losing data.
>
> Fix this by disabling the event and waking up the consumer in case of a
> truncated AUX record.

> + if (wakeup) {
> + if (truncated)
> + handle->event->pending_disable = 1;
> + perf_output_wakeup(handle);
> + }

Does the userspace tool know how to deal with this and re-enable it?