Hello Sebastian,
The following happened once [1]. In pl011_console_write() from:
commit da042bbb7a3f ("printk: Update the printk series.")
&uap->port seems to be released, but various paths don't seem
to acquire the lock,
Regards,
Pierre
[1]
[...] =====================================
[...] WARNING: bad unlock balance detected!
[...] 6.6.0-rc4-rt7-00098-g400db4a2dd90 #1157 Not tainted
[...] -------------------------------------
[...] pr/legacy/18 is trying to release lock (&port_lock_key) at:
[...] pl011_console_write ([path]/drivers/tty/serial/amba-pl011.c:2366)
[...] but there are no more locks to release!
[...]
[...] other info that might help us debug this:
[...] 2 locks held by pr/legacy/18:
[...] #0: ffff8000846bc0b8 (console_lock){+.+.}-{0:0}, at: nbcon_legacy_kthread_func ([path]/kernel/printk/printk.c:3052 [path]/kernel/printk/printk.c:3364)
[...] #1: ffff8000846bc030 (console_srcu){....}-{0:0}, at: console_flush_all ([path]/./include/linux/srcu.h:230 [path]/kernel/printk/printk.c:286 [path]/kernel/printk/printk.c:2971)
[...]
[...] stack backtrace:
[...] CPU: 1 PID: 18 Comm: pr/legacy Not tainted 6.6.0-rc4-rt7-00098-g400db4a2dd90 #1157
[...] Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform, BIOS EDK II Sep 5 2023
[...] Call trace:
[...] dump_backtrace ([path]/arch/arm64/kernel/stacktrace.c:235)
[...] show_stack ([path]/arch/arm64/kernel/stacktrace.c:242)
[...] dump_stack_lvl ([path]/lib/dump_stack.c:107)
[...] dump_stack ([path]/lib/dump_stack.c:114)
[...] print_unlock_imbalance_bug ([path]/kernel/locking/lockdep.c:5201)
[...] lock_release ([path]/kernel/locking/lockdep.c:5438 [path]/kernel/locking/lockdep.c:5780)
[...] rt_spin_unlock ([path]/kernel/locking/spinlock_rt.c:81)
[...] pl011_console_write ([path]/drivers/tty/serial/amba-pl011.c:2366)
[...] console_flush_all ([path]/kernel/printk/printk.c:2910 [path]/kernel/printk/printk.c:2992)
[...] nbcon_legacy_kthread_func ([path]/kernel/printk/printk.c:3053 [path]/kernel/printk/printk.c:3364)
[...] kthread ([path]/kernel/kthread.c:388)
[...] ret_from_fork ([path]/arch/arm64/kernel/entry.S:854)
On 10/4/23 18:06, Sebastian Andrzej Siewior wrote:
Dear RT folks!
I'm pleased to announce the v6.6-rc4-rt7 patch set.
Changes since v6.6-rc4-rt6:
- Lockdep complained about SRCU locking if printk was used from NMI.
- The i915 driver could create a locking related splat during suspend/
resume. Reported by John B. Wyatt IV.
- A new version of printk. This is an update to the current
development version. Large patch series provided by John Ogness.
Known issues
None
The delta patch against v6.6-rc4-rt6 is not appended below due to its
size. It and can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.6/incr/patch-6.6-rc4-rt6-rt7.patch.xz
and as web based diff:
https://git.kernel.org/rt/linux-rt-devel/d/v6.6-rc4-rt7/v6.6-rc4-rt6
You can get this release via the git tree at:
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v6.6-rc4-rt7
The RT patch against v6.6-rc4 can be found here:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patch-6.6-rc4-rt7.patch.xz
The split quilt queue is available at:
https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6-rc4-rt7.tar.xz
Sebastian