From nobody Tue Sep 29 07:39:15 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 328AE29A31C for ; Tue, 11 Aug 2026 04:17:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421842; cv=none; b=SqCT1FKr3ajfZGi8d9bBxl0SmNOTIaCOpPfwq67Awpdq4yNtFhNwD3jYhd7AZ0UWlRW2NSkXtOEpFUn/wD//pcC4ODslydyhMRQo8Y5I2Fni82yPybcejJwWj+xjKFSIe/U2toAN916Zfq8JenpYo3H21MFCQ4NAC64bHzdwixQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421842; c=relaxed/simple; bh=r+2NyJ+8cLw/gTrq7CrMO+BUfJ0zEFGOC0qQx6gO4Rw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TsWAEkfuh6L5iYboZcuDjIrwqVpdwfHL7Bk6Hk5JtOgLUFxi7PmLT7fD4brbs2xMvGUJs0KOgQ0gcIAL9E3NJb11K4F1FdRnC7OGGTLy3HlJ2mfw3SD5jD/Vo1UIfFY+ws2p0Gy601zaCjGufaRCkT2aT9SnN6yYeoZYgOc3xGk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mxu2/5pM; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mxu2/5pM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70B121F00A3D; Tue, 11 Aug 2026 04:17:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786421841; bh=GFTRh8K9ao1Em0M3ZaR9f6KuHfXT+zHCDFY51R1n7EA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=mxu2/5pMT5aNxFe8VwJQeQdLFYwvB/3fI6F+3TB36VwUnthpmibWrxOUnExUeVCd0 1PY2RHBpTgMkFcmNRkbuePVM5vZ0Y3ozLiek0ISKWQmzah7pFMUX9a5yNQAzJXagfw 5PMBoidg7pA0b4ldd+hqmwngoc7alLocXkPeX3j+9atm3LSOrF+j1SzOPG3H1TGJRI 9MmWkNoolsCFXez2TJll665T1DFE1hsUVYVfeocCQZxHLFsjjQ60JU9oC4oSZ1oEf9 Vueqaeu17TWDpDc5XeXdmRXbo2YJsEqYWd6KLIBME6KoC+BCYy79SIopDS6xy/+JDd /QJRjlfD97vSw== Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfauth.phl.internal (Postfix) with ESMTP id AF1EFF40067; Tue, 11 Aug 2026 00:17:19 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Tue, 11 Aug 2026 00:17:19 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFcHzrhXyc0hnypovlJb9g9E7tJfxSxtSmVOni2o4Z0btOd3O0kXf/OsfEdeTwWWt sfbUizPnOdS26Htcmx9apVGOWKxWk+wwPpxYEq9frjxZ2FxQpco5+ZZwomcL9FwE9d4fNS oevDjxTnIiU7+zHZiay/54MDECaPVHjwLyS96w/B5Sn5DGoooChP5NgFUVVKEJyxwN28Um Ld6gWozLgvLzSJiV+a9p+OUuLs0I2bwZeWF4Y3dMuFZzemOg9WiRd/K0zK3J4CSVSOPd27 hphNIVrkXD5dt0hYBf2mNvHC0T9otlvMegJU45fh9pbloduDE6zLHpprgijfzk0RgrW3EG s0D5z6LlJDQWGINj/hUk4CXmbrv6s/dueEgSE8JYNuP/i34JxmgwFmt4M+Dew3e9qvaMUj qp1rCttBy9pSa1WsfKy2CjQmgsHg8BsgaPF00laQDH6rGhYiuy2XeiZOFo9BpQl2fqtLRW o/00xSzKrzloC75dkMkegayXS6aAH+Y8BoEPMrSD71NqBQz3DePn+Zb1qpT4ETVi7Gz7YT 1f3KD9hdRKcMy4l/oJ6ceCdIkXkVBC1d7pfAqHLNyO0MDPtb/AXMYcFwHjGztOOj/8gVqp 3Zla1LFvQ+kPpLa5WPrn/hRGhuZ1Z3fZCJGrmbcLccq/0OaBZBwViRuI2B2g X-ME-Proxy: Feedback-ID: i8dbe485b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 00:17:19 -0400 (EDT) From: Boqun Feng To: Peter Zijlstra Cc: "Ingo Molnar" , "Will Deacon" , "Boqun Feng" , "Waiman Long" , "Gary Guo" , "Alice Ryhl" , "Lyude Paul" , "Daniel Almeida" , =?UTF-8?q?Onur=20=C3=96zkan?= , "Miguel Ojeda" , "Danilo Krummrich" , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Shrikanth Hegde Subject: [PATCH 1/4] irq: Add {over,under}flow detection for local_interrupt_{enable,disable} Date: Mon, 10 Aug 2026 21:17:11 -0700 Message-ID: <20260811041714.27679-2-boqun@kernel.org> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260811041714.27679-1-boqun@kernel.org> References: <20260810085255.GE1642880@noisy.programming.kicks-ass.net> <20260811041714.27679-1-boqun@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently there is no way to detect overflow and underflow inside the HARDIRQ_DISABLE_MASK part of preempt_count. Add these detection guarded by DEBUG_PREEMPT similar to the detection for PREEMPT_MASK {over,under}flow. Suggested-by: Shrikanth Hegde Signed-off-by: Boqun Feng Reviewed-by: Shrikanth Hegde --- include/linux/interrupt_rc.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/linux/interrupt_rc.h b/include/linux/interrupt_rc.h index b9a7f05ecf42..e2456500a646 100644 --- a/include/linux/interrupt_rc.h +++ b/include/linux/interrupt_rc.h @@ -11,6 +11,7 @@ * make it easier to include without hitting circular header dependencies. */ =20 +#include #include #include #include @@ -63,6 +64,13 @@ static inline void local_interrupt_disable(void) =20 new_count =3D hardirq_disable_enter(); =20 + /* Is hardirq disable count overflow soon? */ + if (IS_ENABLED(CONFIG_DEBUG_PREEMPT) && + DEBUG_LOCKS_WARN_ON(((new_count & HARDIRQ_DISABLE_MASK) + + (10 << HARDIRQ_DISABLE_SHIFT)) >=3D + HARDIRQ_DISABLE_MASK)) + return; + /* Interrupts can happen here, but it's OK, see __irq_exit_rcu(). */ =20 if ((new_count & HARDIRQ_DISABLE_MASK) =3D=3D HARDIRQ_DISABLE_OFFSET) @@ -73,6 +81,11 @@ static inline void local_interrupt_enable(void) { int new_count; =20 + /* Unpaired local_interrupt_enable()? Warn and abort. */ + if (IS_ENABLED(CONFIG_DEBUG_PREEMPT) && + DEBUG_LOCKS_WARN_ON((preempt_count() & HARDIRQ_DISABLE_MASK) =3D=3D 0= )) + return; + new_count =3D hardirq_disable_exit(); =20 if ((new_count & HARDIRQ_DISABLE_MASK) =3D=3D 0) --=20 2.50.1 (Apple Git-155) From nobody Tue Sep 29 07:39:15 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 801F32F83A2; Tue, 11 Aug 2026 04:17:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421843; cv=none; b=nM8ThzWrzikVTVGnN3i3jIx1g5/wTi2903NBtLvUAyL1y0996uTXjWWcq5pCqTdIeo4lx0UtPgaPjIM5FUyN0EFPNSBWzWud8uQCeroLJJGj93cy1Dwnq4sB+ixrLNtK+o8P0sLhi6rDGmnwqyoOJN46jSgUKWPH/phafS/Za5Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421843; c=relaxed/simple; bh=JjkVG73r7lYjnLEXq7s+2q/JUAUb/6Wz1yXB0mqjSQM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qtxB5N4IFXgO24W2QKxntdFeQWcDWJRRFi8Dj+MXXMj6VGvfnuzsSzNm3d6ICiSdWP3PzEaF10iJOpLTfmk23UCzYQ0TgowJAOUHDlvWkGnpUfkC6nF8cjYca9qLT6lPhwbgMYXy6gWEhOxnrcXFbhKYCvfXHQgCvxTxO5RqPag= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Fo6YcTsI; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Fo6YcTsI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8C1E1F000E9; Tue, 11 Aug 2026 04:17:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786421842; bh=8x3fFavkcu14gzpA90mnvkW+fghdlQvEb55IQ7ba3bg=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Fo6YcTsIV/Y0oPe+7mLfSacpBc336UGqX5WMgtz9m+uDqKu0yqSTyfUs3AQK6xNq1 3jmKKtzGYNuhTjHJvJ8XlO9YR7cMCEwN5Bg0ljSciC9hkHJSnl7Xp1scN3eiZKKzCJ oV7eonSq9qJYa4sPjz2LDkT1HFqAYtBPnYEFKyJBntqerIfee47B2NplDtHBF8UvHy v3xl1i4k3ygD4W0r5aP6u3XA+gJJlPx9rA/OYYtSxn+CLuzzc4r0dAJhJxmJfHvEkc 3VWXbEoVx5sQJhq0DuejoZLdVoWmbXIhG/aaIFcVO1YV8O4sP5EPyJNWEvJ+GRnohs CMSNv8kAWy0/Q== Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfauth.phl.internal (Postfix) with ESMTP id 23486F40066; Tue, 11 Aug 2026 00:17:21 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Tue, 11 Aug 2026 00:17:21 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGhPmSJ2utFx5D+CERYZNZI0lWwnPoWtdGm1Q24HJV4wHGzzwHlMIG+Ha5+CXwcMV A4Y9FRkPx4iKSOEUD0o2bsQuhlyU9EriC9Wg14EdheA+ghP28LE9/AWvwFlpxSSeaugzOB 7cy4mIL1Zm7HiOC+SZefKLt12lBqjCbJwen8IDKEhCYWwgAOLbn6601jx3eoTsUn+elAvW +Nb62Q3PknpJ5JS/PGcU8W3OZCAnD6uTdZFXZQ5gjZYvJftgWnEBjoe2o4DqsJ8oOzcaMy Yz2rdDjTzptNIY6+Mw8UVdo8kkEkZUhr3Jhp99XO6QkjjOLjPFF2Am+c3dLYLr4j2hpoGE Sy0122RGwIwse33IuPS2/KEdexpCmZCfHK1eoT4VKeumc/wJCl4V+BN9zMO2UGdrCmB+40 j114LQqZUdieb3h89xF/OWoxQHNGP6MAf07hh5lhlba4KB7VKh861XeHw+W/QJz9LAcQp1 x6NK5BQMIHgJ3VFnDm9zydsNm15JcICiYF8jLLwjw+rNu/xs0gLHUh6Gr8GxLjWpSKDw98 VRVD4zbMoq3AjVUaH1Yk0NWBy31esrqaxgF9ld3jxSVDSfmP2UVFQl9rQIFIzN8VpSYoyT r3yJaOIjTqIAYqhtMt4QEzpJI+MD0UyeelVxpKvK+hwXR8kfWDClU8GZxKpQ X-ME-Proxy: Feedback-ID: i8dbe485b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 00:17:20 -0400 (EDT) From: Boqun Feng To: Peter Zijlstra Cc: "Ingo Molnar" , "Will Deacon" , "Boqun Feng" , "Waiman Long" , "Gary Guo" , "Alice Ryhl" , "Lyude Paul" , "Daniel Almeida" , =?UTF-8?q?Onur=20=C3=96zkan?= , "Miguel Ojeda" , "Danilo Krummrich" , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Shrikanth Hegde Subject: [PATCH 2/4] selftests/bpf: Use the new NMI_BITS definition Date: Mon, 10 Aug 2026 21:17:12 -0700 Message-ID: <20260811041714.27679-3-boqun@kernel.org> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260811041714.27679-1-boqun@kernel.org> References: <20260810085255.GE1642880@noisy.programming.kicks-ass.net> <20260811041714.27679-1-boqun@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The definition of NMI_BITS was out of sync after the introduction of HAS_SEPARATE_PREEMPT_RESCHED_BITS, hence adjust it. Reported-by: Shrikanth Hegde Signed-off-by: Boqun Feng Reviewed-by: Shrikanth Hegde --- tools/testing/selftests/bpf/bpf_experimental.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing= /selftests/bpf/bpf_experimental.h index 0159a3d365c8..56520d551abd 100644 --- a/tools/testing/selftests/bpf/bpf_experimental.h +++ b/tools/testing/selftests/bpf/bpf_experimental.h @@ -368,7 +368,7 @@ extern int bpf_cgroup_read_xattr(struct cgroup *cgroup,= const char *name__str, #define SOFTIRQ_BITS 8 #define HARDIRQ_DISABLE_BITS 8 #define HARDIRQ_BITS 4 -#define NMI_BITS 1 +#define NMI_BITS (1 + 3*IS_ENABLED(CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BIT= S)) =20 #define PREEMPT_SHIFT 0 #define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS) --=20 2.50.1 (Apple Git-155) From nobody Tue Sep 29 07:39:15 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 4A5724B0482 for ; Tue, 11 Aug 2026 04:17:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421845; cv=none; b=jl+0MFw5bk7k+k3A7yUOGjrRNLdbMVzrSe7eufYOz5lqM/Wz9GZsvqkaSWPsddyPCvLH/VQAYFytxsbSCFx0UFNfkKR1RENu7wUJvxWcPFk6ZS0AtK0uVQKdyt0b7AhlUo5A8PBbcgdbHkb7R6mdQfVqIJ0E6VQolHtAHyKvzWo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421845; c=relaxed/simple; bh=2zTDO5pvXwmT2tTWBLKnTCTKM9AeLo2GSvrt00GJGi8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aArFpFAOQBTYP9K2hvoMEhA/mCvxlUQAoI4ozzNjBJqzzMzZ/CTKBGyjVw9vBHGM+MWdD4aWDP7kCn1j3mk89O76z5NGUDjU8f+i+xbHM46tz3waB+k8wgM/Tpj8iPYo20/jH+vmMabSAL5FsEIyTRPc7BnACQUDxPkJvg27qm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oKYOOScj; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oKYOOScj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94DA41F00A3A; Tue, 11 Aug 2026 04:17:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786421844; bh=GiTDOurHXzQV/rUXpeQ1nvGDkmPVLov3VrBqxGeXDRc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=oKYOOScjEr6V4B/Fx5dboPtZfqsDrtijrOKxMDWn1A22flNEMr2vo7sIlpwUyy7/F n6C1AViON1bNQBhu29waZ6vPfIqgr93QiGYq88mYZ1WN+IpOCDcjkx0Qnudrcix3VX ZB3/X/ybc/rgZJNboPDMPG5FIY7pt+oS/wVQJvbE3FZsctREr8fDKa8FrmaGthaHiy Ise4hN9MyI+FQKnWdFqsoP4TEcIhtP2PWOmLfibwB/TnSG1GefpVZrMxZVP/MkcphC z+oZzRRy6VgqO6T7+x8oqCytIfWKsbqr2wjGRZob0JPTspqa9QJ8sXnRh/Gd+JGgN8 1W2HIpt0aO+Hg== Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfauth.phl.internal (Postfix) with ESMTP id D3047F40066; Tue, 11 Aug 2026 00:17:22 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Tue, 11 Aug 2026 00:17:22 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGhPmSJ2utFx5D+CERYZNZI0lWwnPoWtdGm1Q24HJV4wHGzzwHlMIG+Ha5+CXwcMV A4Y9FRkPx4iKSOEUD0o2bsQuhlyU9EriC9Wg14EdheA+ghP28LE9/AWvwFlpxSSeaugzOB 7cy4mIL1Zm7HiOC+SZefKLt12lBqjCbJwen8IDKEhCYWwgAOLbn6601jx3eoTsUn+elAvW +Nb62Q3PknpJ5JS/PGcU8W3OZCAnD6uTdZFXZQ5gjZYvJftgWnEBjoe2o4DqsJ8oOzcaMy Yz2rdDjTzptNIY6+Mw8UVdo8kkEkZUhr3Jhp99XO6QkjjOLjPFF2Am+c3dLYLr4j2hpojL 1OhSERuh4PlXLvvr3orFzPfCfKcWhE4dyZIZTDsPeypdODACpHSQqhtnecTIOBprHsx/Ts UFyh457VfpGKHE7O774W2JK8+AlRz1Xr3qipN4LX3a8AEQQSXLETBH6mOd0Y5q8LXB1lEp 20veH+pS2ngIoC86Pz8byXBGatmpabzyHrRSMgMqmXZtW0evLRp3NtG9XhgGgkkmYOylhb VxnnjkArcz4xsGtMUkBwh26jnN8P/IN9fqgnqpxJuMpHYoQ4+1a+1oAiEe0Y4s2Tcl6UJn /bhu0dNESydnecyqfras5DBRSBVoS0yLQsD39E4zXlyHMO0n8RQmnMG9sStQ X-ME-Proxy: Feedback-ID: i8dbe485b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 00:17:22 -0400 (EDT) From: Boqun Feng To: Peter Zijlstra Cc: "Ingo Molnar" , "Will Deacon" , "Boqun Feng" , "Waiman Long" , "Gary Guo" , "Alice Ryhl" , "Lyude Paul" , "Daniel Almeida" , =?UTF-8?q?Onur=20=C3=96zkan?= , "Miguel Ojeda" , "Danilo Krummrich" , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Shrikanth Hegde Subject: [PATCH 3/4] irq: Explain better on NMI_MASK overflow condition Date: Mon, 10 Aug 2026 21:17:13 -0700 Message-ID: <20260811041714.27679-4-boqun@kernel.org> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260811041714.27679-1-boqun@kernel.org> References: <20260810085255.GE1642880@noisy.programming.kicks-ass.net> <20260811041714.27679-1-boqun@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently __preempt_count_nmi_enter() uses 15 as the maximum NMI nesting level, and it's because 4 bits are used to represent the nesting level of NMI. Replace the tautological comment with a more direct mention to the 4 bits limitation to help readers understand this condition. Suggested-by: Shrikanth Hegde Signed-off-by: Boqun Feng Reviewed-by: Shrikanth Hegde --- include/linux/hardirq.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 73b48dd9f135..2648c49cd8f6 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -108,7 +108,7 @@ DECLARE_PER_CPU(unsigned int, nmi_nesting); #define __preempt_count_nmi_enter() \ do { \ __preempt_count_add(HARDIRQ_OFFSET); \ - /* Maximum NMI nesting is 15. */ \ + /* NMI nesting is represented in 4 bits. */ \ BUG_ON(__this_cpu_read(nmi_nesting) >=3D 15); \ __this_cpu_inc(nmi_nesting); \ preempt_count_set(preempt_count() | NMI_MASK); \ --=20 2.50.1 (Apple Git-155) From nobody Tue Sep 29 07:39:15 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 A391B315D53 for ; Tue, 11 Aug 2026 04:17:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421846; cv=none; b=hpClV3UXAfu86z9cMwhVsYLCuxj43tDwS0zWMx6kh4rGNaW91YUitCgrOgtvGfm9uwv38BoSFWnVHgPj9bnTPHo/miymA8QSjWnZxTiAaM1JP+P1xl11pEdZDeUpBV5E1h9pSts+6JacHoG+7yrCDYvxs6AEsy/aOOsROEfmz3Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786421846; c=relaxed/simple; bh=hqzDoFZ+FnJ+kwkQ1XUbPH87gH8HIR00iTIZdoqIJfw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sIMJN15Q5sg/+Mb1Dqxwa8EPl01/rxCctIsJU/9cEmOcJZKCR9lrN+KMJNfAY/yyiWRRkGyVaZR9FHfvJRY9ffldWmPh4gGmoG8xM2kb8Qo3KpvPrLIrJa+zxFUz2VmfJpyjEdVjOozvwiQhjxbwkA2zcbQZMNl8dRjOa9y2mzg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iT9DUAmc; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iT9DUAmc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E4CB1F000E9; Tue, 11 Aug 2026 04:17:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786421845; bh=7uHnXoIwtSGCT9rqIiBE0UwPM81LBEEkAOAS7zp4QXM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=iT9DUAmchj+8A4PxqZtXMhp8aJ+zXqpWuUmga1sg1awW/ev+sPm53pXJxoN20jXXo NmAzl4WbXk/zqxt9jOLgGsBgGQbvzOGjgFikQJtt8jokjmlcbWI9Qg3+ORQk53UzdE Ix8I+DX3hZmg12Q3tq4blC1/whuFkZ1QSrz36Xw421BJXv6OYMfhkhQBfOSkGmqFAM OMHEkfxbC3cP4tOyE16QtqNGXGYc6zm/PsPn+Pe9OsXDc3qvDIFJZ3I1lqOvjF+tGV QIZZsHMY76EBOasvqTPeDV1gxvWUuKba7mp6BUwkRiJRYoDu34VQPXH2MYkaq9p/a4 Oo9qGL/npLilg== Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52]) by mailfauth.phl.internal (Postfix) with ESMTP id 4B10BF40066; Tue, 11 Aug 2026 00:17:24 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-12.internal (MEProxy); Tue, 11 Aug 2026 00:17:24 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGhPmSJ2utFx5D+CERYZNZI0lWwnPoWtdGm1Q24HJV4wHGzzwHlMIG+Ha5+CXwcMV A4Y9FRkPx4iKSOEUD0o2bsQuhlyU9EriC9Wg14EdheA+ghP28LE9/AWvwFlpxSSeaugzOB 7cy4mIL1Zm7HiOC+SZefKLt12lBqjCbJwen8IDKEhCYWwgAOLbn6601jx3eoTsUn+elAvW +Nb62Q3PknpJ5JS/PGcU8W3OZCAnD6uTdZFXZQ5gjZYvJftgWnEBjoe2o4DqsJ8oOzcaMy Yz2rdDjTzptNIY6+Mw8UVdo8kkEkZUhr3Jhp99XO6QkjjOLjPFF2Am+c3dLYLr4j2hpoCb HCeT09AUZDGH/KNAEPjn6oIsZsPjAtM0BkZN09ohNQoIsKmXRg4SSF/n/BD7+vC0arCgdE AT/9krDegem1+X2rlJqyIz1UZ6tzuEcDdzGjQzC023qp8/laYcSlVYjSc00Pzq6sh8+5dn VQYgxDR3F0IgIxBoGEdidLgFg14Mn159pd7rj1TnzaZ9uVsJx14+VVezOR3VcHQBTaox97 TA8jVpJzeYrODfhDSGcN2mEXLkIaN92O5Exzju9C6UQwMzpHSIPMyMX++ib5wBxiOUV+6W 5LmFXndWVpfCNLwDJ28t5GsMxi7mu354b2C8xBddEuP4AJMxJ2XqIOMXJ6sA X-ME-Proxy: Feedback-ID: i8dbe485b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 00:17:23 -0400 (EDT) From: Boqun Feng To: Peter Zijlstra Cc: "Ingo Molnar" , "Will Deacon" , "Boqun Feng" , "Waiman Long" , "Gary Guo" , "Alice Ryhl" , "Lyude Paul" , "Daniel Almeida" , =?UTF-8?q?Onur=20=C3=96zkan?= , "Miguel Ojeda" , "Danilo Krummrich" , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Shrikanth Hegde Subject: [PATCH 4/4] irq: Add max local_interrupt_disable() nesting level kunit test case Date: Mon, 10 Aug 2026 21:17:14 -0700 Message-ID: <20260811041714.27679-5-boqun@kernel.org> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260811041714.27679-1-boqun@kernel.org> References: <20260810085255.GE1642880@noisy.programming.kicks-ass.net> <20260811041714.27679-1-boqun@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To confirm the max nesting level of local_interrupt_disable() works, a kunit test is added to the whole test suite. Note that when DEBUG_PREEMPT=3Dy, it'll generate a warning which is expected. Suggested-by: Shrikanth Hegde Signed-off-by: Boqun Feng Reviewed-by: Shrikanth Hegde --- kernel/irq/refcount_interrupt_test.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/kernel/irq/refcount_interrupt_test.c b/kernel/irq/refcount_int= errupt_test.c index ca904dba24b9..38dfccbaa4d4 100644 --- a/kernel/irq/refcount_interrupt_test.c +++ b/kernel/irq/refcount_interrupt_test.c @@ -52,6 +52,27 @@ static void test_multiple_irq_change(struct kunit *test) TEST_IRQ_ON(); } =20 +static void test_max_nesting_irq_change(struct kunit *test) +{ + for (int i =3D 0; i < __IRQ_MASK(HARDIRQ_DISABLE_BITS); i++) { + local_interrupt_disable(); + TEST_IRQ_OFF(); + } + + + for (int i =3D 0; i < __IRQ_MASK(HARDIRQ_DISABLE_BITS); i++) { + TEST_IRQ_OFF(); + local_interrupt_enable(); + } + + TEST_IRQ_ON(); + + local_interrupt_disable(); + TEST_IRQ_OFF(); + local_interrupt_enable(); + TEST_IRQ_ON(); +} + static void test_irq_save(struct kunit *test) { unsigned long flags; @@ -79,6 +100,7 @@ static struct kunit_case test_cases[] =3D { KUNIT_CASE(test_single_irq_change), KUNIT_CASE(test_nested_irq_change), KUNIT_CASE(test_multiple_irq_change), + KUNIT_CASE(test_max_nesting_irq_change), KUNIT_CASE(test_irq_save), {}, }; --=20 2.50.1 (Apple Git-155)