diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-05-24 12:18:13 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-05-24 12:18:13 +0800 |
commit | 0a296a966f183e4ef1fcb37940940e8df8c4f258 (patch) | |
tree | f3715d78e72389582ce2ad5dc5c59051f1814b4b /kernel/events | |
parent | 03d8016839b087e141e26472fabcf860bc05cf7d (diff) | |
parent | e429f243df2823451c92227317e5fce5f310b674 (diff) |
Merge tag 'v4.1.25' into linux-linaro-lsk-v4.1lsk-v4.1-16.05
This is the 4.1.25 stable release
Diffstat (limited to 'kernel/events')
-rw-r--r-- | kernel/events/ring_buffer.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 7f63ad978cb8..dba8894d25cc 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -347,6 +347,7 @@ void perf_aux_output_end(struct perf_output_handle *handle, unsigned long size, bool truncated) { struct ring_buffer *rb = handle->rb; + bool wakeup = truncated; unsigned long aux_head; u64 flags = 0; @@ -375,9 +376,16 @@ void perf_aux_output_end(struct perf_output_handle *handle, unsigned long size, aux_head = rb->user_page->aux_head = local_read(&rb->aux_head); if (aux_head - local_read(&rb->aux_wakeup) >= rb->aux_watermark) { - perf_output_wakeup(handle); + wakeup = true; local_add(rb->aux_watermark, &rb->aux_wakeup); } + + if (wakeup) { + if (truncated) + handle->event->pending_disable = 1; + perf_output_wakeup(handle); + } + handle->event = NULL; local_set(&rb->aux_nest, 0); |