Re: request_irq() with local bh disabled
From: Ryo Takakura <hidden>
Date: 2025-03-07 12:59:17
Also in:
lkml
Hi Boris and Peter, On Fri, 7 Mar 2025 12:55:50 +0100, Borislav Petkov wrote:
On Thu, Mar 06, 2025 at 05:19:12PM +0100, Borislav Petkov wrote:quoted
On Thu, Mar 06, 2025 at 02:45:16PM +0100, Eric Dumazet wrote:quoted
Hmmm.. not sure why local_bh is considered held..Yeah, it looks like it is some crap in tip as current mainline is fine. Lemme see what I can find there. Thx and sorry for the noise.As already mentioned by Mr. Z on the tip-bot message thread, below commit breaks lockdep.
Thank you Peter for letting me know.
Reverting it fixes the issue, ofc.
$ git bisect start
# status: waiting for both good and bad commits
# good: [848e076317446f9c663771ddec142d7c2eb4cb43] Merge tag 'hid-for-linus-2025030501' of git://git.kernel.org/pub/scm/linux/kernel/git/>hid/hid
git bisect good 848e076317446f9c663771ddec142d7c2eb4cb43
# status: waiting for bad commit, 1 good commit known
# bad: [f4444d22a90c3fb0c825195b4154455d42986f21] Merge remote-tracking branch 'tip/master' into rc5+
git bisect bad f4444d22a90c3fb0c825195b4154455d42986f21
# bad: [6714630acf3cae8974e62a810389dcb191ac49af] Merge branch into tip/master: 'sched/core'
git bisect bad 6714630acf3cae8974e62a810389dcb191ac49af
# good: [156a8975430b127b5000b9018cb220fddf633164] Merge branch into tip/master: 'irq/core'
git bisect good 156a8975430b127b5000b9018cb220fddf633164
# bad: [468fad69db143874eaaeb472816f424e261df570] Merge branch into tip/master: 'locking/core'
git bisect bad 468fad69db143874eaaeb472816f424e261df570
# good: [f5de95438834a3bc3ad747f67c9da93cd08e5008] irqchip/renesas-rzv2h: Simplify rzv2h_icu_init()
git bisect good f5de95438834a3bc3ad747f67c9da93cd08e5008
# bad: [5fc1506d33db23894e74caf048ba5591f4986767] rust: lockdep: Remove support for dynamically allocated LockClassKeys
git bisect bad 5fc1506d33db23894e74caf048ba5591f4986767
# bad: [9b4070d36399ffcadc92c918bd80da036a16faed] locking/lock_events: Add locking events for rtmutex slow paths
git bisect bad 9b4070d36399ffcadc92c918bd80da036a16faed
# good: [337369f8ce9e20226402cf139c4f0d3ada7d1705] locking/mutex: Add MUTEX_WARN_ON() into fast path
git bisect good 337369f8ce9e20226402cf139c4f0d3ada7d1705
# bad: [8a9d677a395703ef9075c91dd04066be8a553405] lockdep: Fix wait context check on softirq for PREEMPT_RT
git bisect bad 8a9d677a395703ef9075c91dd04066be8a553405
# good: [5ddd09863c676935c18c8a13f5afb6d9992cbdeb] locking/rtmutex: Use struct keyword in kernel-doc comment
git bisect good 5ddd09863c676935c18c8a13f5afb6d9992cbdeb
# first bad commit: [8a9d677a395703ef9075c91dd04066be8a553405] lockdep: Fix wait context check on softirq for PREEMPT_RT
Author: Ryo Takakura [off-list ref]
Date: Sat Jan 18 14:49:00 2025 +0900
lockdep: Fix wait context check on softirq for PREEMPT_RT
Since commit 0c1d7a2c2d32 ("lockdep: Remove softirq accounting on
PREEMPT_RT."), the wait context test for mutex usage within
"in softirq context" fails as it references @softirq_context.
[ 0.184549] | wait context tests |
[ 0.184549] --------------------------------------------------------------------------
[ 0.184549] | rcu | raw | spin |mutex |
[ 0.184549] --------------------------------------------------------------------------
[ 0.184550] in hardirq context: ok | ok | ok | ok |
[ 0.185083] in hardirq context (not threaded): ok | ok | ok | ok |
[ 0.185606] in softirq context: ok | ok | ok |FAILED|
As a fix, add lockdep map for BH disabled section. This fixes the
issue by letting us catch cases when local_bh_disable() gets called
with preemption disabled where local_lock doesn't get acquired.
In the case of "in softirq context" selftest, local_bh_disable() was
being called with preemption disable as it's early in the boot.
Signed-off-by: Ryo Takakura [off-list ref]
Signed-off-by: Boqun Feng [off-list ref]
Link: https://lore.kernel.org/r/20250118054900.18639-1-ryotkkr98@gmail.com (local)I'm so sorry that the commit caused this problem... Please let me know if there is anything that I should do. Sincerely, Ryo Takakura
-- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette