From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932432AbcAYNIx (ORCPT ); Mon, 25 Jan 2016 08:08:53 -0500 Received: from casper.infradead.org ([85.118.1.10]:41329 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756000AbcAYNIu (ORCPT ); Mon, 25 Jan 2016 08:08:50 -0500 Date: Mon, 25 Jan 2016 14:08:45 +0100 From: Peter Zijlstra To: linux-kernel@vger.kernel.org, mingo@kernel.org, torvalds@linux-foundation.org, eranian@google.com, tglx@linutronix.de, hpa@zytor.com, acme@redhat.com, dsahern@gmail.com, namhyung@kernel.org, vincent.weaver@maine.edu, jolsa@redhat.com Cc: alexander.shishkin@linux.intel.com Subject: Re: [tip:perf/urgent] perf: Fix perf_event_exit_task() race Message-ID: <20160125130845.GX6357@twins.programming.kicks-ass.net> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --- Subject: perf: Fix orphan hole From: Peter Zijlstra Date: Fri Jan 22 22:13:41 CET 2016 We should set event->owner before we install the event, otherwise there is a hole where the target task can fork() and we'll not inherit the event because it thinks the event is orphaned. Signed-off-by: Peter Zijlstra (Intel) --- kernel/events/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -8489,6 +8489,8 @@ SYSCALL_DEFINE5(perf_event_open, perf_event__header_size(event); perf_event__id_header_size(event); + event->owner = current; + perf_install_in_context(ctx, event, event->cpu); perf_unpin_context(ctx); @@ -8498,8 +8500,6 @@ SYSCALL_DEFINE5(perf_event_open, put_online_cpus(); - event->owner = current; - mutex_lock(¤t->perf_event_mutex); list_add_tail(&event->owner_entry, ¤t->perf_event_list); mutex_unlock(¤t->perf_event_mutex);