Messages in this thread Patch in this message | | | Subject | Re: perf: regression with PERF_EVENT_IOC_REFRESH | From | Peter Zijlstra <> | Date | Tue, 24 May 2011 17:18:38 +0200 |
| |
On Tue, 2011-05-24 at 17:11 +0200, Peter Zijlstra wrote: > On Tue, 2011-05-24 at 11:04 -0400, Vince Weaver wrote: > > As an aside, I also wasted 6 hours last night finding out that you don't > > get signaled on overflow if you don't have a ring-buffer mmap()ed, even > > if you never read from the buffer and you only are interested in counting > > the number of overflows. > > That sounds like something we could fix, let me investigate.
Does the below cure this?
--- kernel/events/core.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c index c09767f..bd1ba5e 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -5018,9 +5018,12 @@ static int __perf_event_overflow(struct perf_event *event, int nmi, event->pending_kill = POLL_HUP; if (nmi) { event->pending_disable = 1; + event->pending_wakeup = 1; irq_work_queue(&event->pending); - } else + } else { perf_event_disable(event); + perf_event_wakeup(event); + } } if (event->overflow_handler)
| |