From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793526647; b=bVWbXTltftSG2RiKbjESHqQbgFxPKQQl88MoZ1Iou7I0aXvJ6kbmnWgBG8p72k+rx8QE CF8KjjVIE0DVI7lb62B2G0oXmPuBAcbDTeTbD6X/wXmUDtc9rL2K9nwKCOSRNbLhCwzKl FjEFF/l5CDhRfexdI8HNxIYtZl6h/7n/BQVmsPLfh4CtR2xaBrCIjejiF3+6iMGN5fUXH 1M075vUXhFk4n4jjs/xA7smysvyphJI9+kZUtR5BmQ+fplB2FpeIZnCM1isvNTewu7O7u 2Ipjqa5JMk366kAyhonZBVNmfuY/+SA6KARnZSqOmz8DeowQYkLWrmYXezeMh++MbGA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793526647; h=Received:DKIM-Signature:Received:Date:Message-ID:From:To:Cc:Subject: In-Reply-To:References:User-Agent:MIME-Version:Content-Type: X-SA-Exim-Connect-IP:X-SA-Exim-Rcpt-To:X-SA-Exim-Mail-From: X-SA-Exim-Scanned; bh=42uXSRxPhPDO6oQZR38ZRaJO7S/jow9zUbQ6T8A30a0=; b=yknQEoU23js/kV2S+LRJT0TLLAW7Tucp6fb1Vl9VEsdD2GO62ksvANsVJRD2/jeXUgAC GK2chWe15V/lzXEt+OeprfDAlqV5ANut3CU60mDpMlakdD0THYbHmN7DDgW8Z303H0/rk rrBHa9fuyoT552HyG9ox74FR0EG+e7X1PGCXIuSbkWj13oTNAaokXc6si9AwayaRHf6iI E8YCzNVkuheVEGQRGj1rQGZw5EzIJv+vNaZRoY8/2bgcl668ujKOF350dLTtEUwX2cHhg 7LZxMHXcP9Djb8EqfAN3uL0WHGZcgs5e1S10gEodN6kmKufVQf98ZuoAQlULWWCFUZA== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=GVdZuWWd; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 43C7E606A324 for ; Sun, 1 Nov 2026 09:50:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=GVdZuWWd Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA6BB1F000C1; Sun, 1 Nov 2026 09:50:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793526646; bh=42uXSRxPhPDO6oQZR38ZRaJO7S/jow9zUbQ6T8A30a0=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=GVdZuWWdEzXRVjEEQNOiUhhrtLa+A0riyiLXO20rrwSm+OwCd29zCk1EXh3PQdRKA uWXOhV7ammigMk9sRM4I9w/xIdzIMvqLPWiS/IrypyPc2XQz8KzI+fuyEUI7jEMT64 74bHikrzIQUTuILLPeXl7SJGqU1EUPa1zkEMUQAqckQQpTK6XL9BcH27QXc/Ud6ood JK3RY0R899yc3SDGiqSAFjcC/fpKiqhkzQi9/deJrIRHaYZFLdVyoD7gyby/0Ecs8/ 6kGZBW1JBAc65Bu9HDUuF4LUiTjmwxBgiq88m+5q2pTu7xqKHw51c2LuNiCPi6LGao G4ATvPiJuZlWQ== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xNSD6-00000009S7v-1hV8; Sun, 01 Nov 2026 09:50:44 +0000 Date: Sun, 01 Nov 2026 09:50:39 +0000 Message-ID: <86jymw3mog.wl-maz@kernel.org> From: Marc Zyngier To: Avi Weiss Cc: tglx@kernel.org, radu@rendec.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH] genirq: Resend pending interrupts after handle_simple_irq() In-Reply-To: <20261101045632.218099-1-thnkslprpt@gmail.com> References: <20261101045632.218099-1-thnkslprpt@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: thnkslprpt@gmail.com, tglx@kernel.org, radu@rendec.net, linux-kernel@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false On Sun, 01 Nov 2026 04:56:28 +0000, Avi Weiss wrote: > > Commit 2c9e7f857400 ("genirq: Teach handle_simple_irq() to resend an > in-progress interrupt") records a concurrent interrupt as IRQS_PENDING > when another CPU is still handling the IRQ. However, handle_simple_irq() > does not consume the pending state after the first handler completes, > so an interrupt arriving during an affinity change can be lost. > This commit message isn't quite accurate. "Consuming" has a particular meaning for edge-triggered interrupts, and indicates that the interrupt is not pending anymore. Here, the bug is that we don't check for the race after the initial handling, and while the interrupt is still pending (hence not really lost), the signalling is the missing part. > Check IRQS_PENDING after handle_irq_event() and request a resend, as > handle_fasteoi_irq() already does. And then this sentence makes perfect sense. > > Fixes: 2c9e7f857400 ("genirq: Teach handle_simple_irq() to resend an in-progress interrupt") > Signed-off-by: Avi Weiss > --- > > Related 2025 patch/review: https://lore.kernel.org/r/20250708173404.1278635-2-maz@kernel.org > kernel/irq/chip.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c > index de754db414d1..4a131dd72196 100644 > --- a/kernel/irq/chip.c > +++ b/kernel/irq/chip.c > @@ -626,6 +626,8 @@ void handle_simple_irq(struct irq_desc *desc) > > kstat_incr_irqs_this_cpu(desc); > handle_irq_event(desc); > + if (unlikely(desc->istate & IRQS_PENDING)) > + check_irq_resend(desc, false); > } > EXPORT_SYMBOL_GPL(handle_simple_irq); Other than the nits above: Reviewed-by: Marc Zyngier M. -- Without deviation from the norm, progress is not possible.