Messages in this thread | | | Date | Wed, 10 Sep 2014 15:49:32 +0200 | Subject | Re: [PATCH] perf: Do not check PERF_EVENT_STATE_EXIT on syscall read path | From | Stephane Eranian <> |
| |
Peter,
On Mon, Sep 8, 2014 at 5:22 PM, Peter Zijlstra <peterz@infradead.org> wrote: > On Mon, Sep 08, 2014 at 04:31:07PM +0200, Jiri Olsa wrote: >> Revert PERF_EVENT_STATE_EXIT check on read syscall path. >> It breaks standard way to read counter, which is to open >> the counter, wait for the monitored process to die and >> read the counter. >> >> Reported-by: Stephane Eranian <eranian@google.com> >> Acked-by: Stephane Eranian <eranian@google.com> >> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> >> Cc: Frederic Weisbecker <fweisbec@gmail.com> >> Cc: Ingo Molnar <mingo@kernel.org> >> Cc: Paul Mackerras <paulus@samba.org> >> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> >> Cc: Stephane Eranian <eranian@google.com> >> Signed-off-by: Jiri Olsa <jolsa@kernel.org> > > Thanks! Still don't see this fix in tip.git.
>> --- >> kernel/events/core.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/kernel/events/core.c b/kernel/events/core.c >> index d8cb4d21a346..6d1c9ce1643e 100644 >> --- a/kernel/events/core.c >> +++ b/kernel/events/core.c >> @@ -3600,8 +3600,7 @@ perf_read_hw(struct perf_event *event, char __user *buf, size_t count) >> * error state (i.e. because it was pinned but it couldn't be >> * scheduled on to the CPU at some point). >> */ >> - if ((event->state == PERF_EVENT_STATE_ERROR) || >> - (event->state == PERF_EVENT_STATE_EXIT)) >> + if (event->state == PERF_EVENT_STATE_ERROR) >> return 0; >> >> if (count < event->read_size) >> -- >> 1.8.3.1 >>
| |