From nobody Tue Sep 29 09:09:42 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A30823BBA0D; Mon, 10 Aug 2026 10:29:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786357789; cv=none; b=K7Xwmk/TCdZ7hQt1CbbGZ1W0op2Glono3Gf/BTEYiTr4l24hQgYYdakeyz3ueDspdPDnls2O1tTY7a9VRYyI2GwfjVb1k4zmzUIDOogYWzIjZ4vcbxFAsL+vkh7/YrpCoukGdkCEjKJ0mtXldSdHNPfDA4y8kIrGiFxWP5KI8A0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786357789; c=relaxed/simple; bh=h/2Ger5wTPILnK8bSYa03vzG8hfaggo+c8Fo8XFJHRw=; h=Date:From:To:Subject:Cc:In-Reply-To:References:MIME-Version: Message-ID:Content-Type; b=c3vXbqQE3f0eYNR4Oe3LSJ4PO2z9ho4Q484+ltVrvUi19JJX6Gl6IAYCscqIqDxjb4aenivAYQdlsLGVBv4gqKRbweLoKhpAdjPyaNXNdQt0bHOYcwuvv2NY1jy+yXnADZ9aGcD7UaXdil2kY43nPgFGp2KIaR/+b2mMyJU03X8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=yEknmICN; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=jLry4UAd; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="yEknmICN"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="jLry4UAd" Date: Mon, 10 Aug 2026 10:29:44 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1786357785; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qS9JagsCD/d/QZRJh3JsIvTq5cG0l3zOSvLmx/k3DUk=; b=yEknmICNzIksXUy1uv6aeNvf//RSfVc/qzKvBeLBZHxIc5ygEFUJRXeS70LAquR3jcFKae MaCPfQIZvPEJVdkGGtgVrzXfW6XjtBAB0Uidb3+qt3pxZhHy1SyW+2EBnACm2ithYtXjHQ SsL821s6ADMH5/fbdAy8eiDAucQ8XjL679vANlgxiQzDEXhtwEbZkSeeXW20PNN43ixoun bFyU2z5hBhBL6KAqbfSHFtlVjRQbPVJladc1BjHZz3pJRYg+osOlYtggwfVi8L/D/esxWX 4kwcnfSXBG6rqQz54+plsRNvP38eUVGlfpArrNNphh33KweIEt/VYkwTVYmFSw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1786357785; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qS9JagsCD/d/QZRJh3JsIvTq5cG0l3zOSvLmx/k3DUk=; b=jLry4UAdpEb+/swH0QLkcKP71xVEA1wgstJaCZ4OUabMPGFUxH2FcC6VzqPKTTPVaGkwtO wMZopDjFVWrg+PCw== From: "tip-bot2 for Kyle Zeng" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: perf/urgent] perf: Reject exited events as group leaders Cc: Kyle Zeng , "Peter Zijlstra (Intel)" , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20260806205655.75722-1-kylebot@openai.com> References: <20260806205655.75722-1-kylebot@openai.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <178635778406.442315.14761251154509750764.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Precedence: bulk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The following commit has been merged into the perf/urgent branch of tip: Commit-ID: fa091f46c3833fb22384f10eade2b4e1e1d0b278 Gitweb: https://git.kernel.org/tip/fa091f46c3833fb22384f10eade2b4e1e= 1d0b278 Author: Kyle Zeng AuthorDate: Thu, 06 Aug 2026 13:56:55 -07:00 Committer: Peter Zijlstra CommitterDate: Fri, 07 Aug 2026 18:27:04 +02:00 perf: Reject exited events as group leaders perf_event_remove_on_exec() sets remove-on-exec events to the EXIT state and detaches their group relationships. The event's file descriptor can remain open, however, and perf_event_open() currently accepts that event as a group leader because its early validation rejects only REVOKED and DEAD events. A new sibling can consequently be linked to the detached leader. When the leader is closed, perf_group_detach() observes that its PERF_ATTACH_GROUP bit is already clear and skips the new sibling. The sibling then retains a group_leader pointer to the freed event. Reject group leaders in the EXIT state. Perform the check while holding the shared context mutex so that an exec in the target task cannot detach the leader between validation and group attachment. [peterz: make the earlier test fully consistent] Fixes: 037a3c43edfb ("perf/core: Detach event groups during remove_on_exec") Assisted-by: Codex:gpt-5.6-sol Signed-off-by: Kyle Zeng Signed-off-by: Peter Zijlstra (Intel) Link: https://patch.msgid.link/20260806205655.75722-1-kylebot@openai.com --- kernel/events/core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index ba5bd6a..bd25e19 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -13972,7 +13972,7 @@ SYSCALL_DEFINE5(perf_event_open, goto err_fd; } group_leader =3D fd_file(group)->private_data; - if (group_leader->state <=3D PERF_EVENT_STATE_REVOKED) { + if (group_leader->state <=3D PERF_EVENT_STATE_EXIT) { err =3D -ENODEV; goto err_fd; } @@ -14103,6 +14103,12 @@ SYSCALL_DEFINE5(perf_event_open, if (group_leader->ctx !=3D ctx) goto err_locked; =20 + /* Recheck under ctx::mutex to serialize against remove-on-exec. */ + if (group_leader->state <=3D PERF_EVENT_STATE_EXIT) { + err =3D -ENODEV; + goto err_locked; + } + /* * Only a group leader can be exclusive or pinned */