On Tue, 11 Feb 2025 11:39:49 +0000
Tvrtko Ursulin <tursulin@xxxxxxxxxxx> wrote:
On 10/02/2025 16:08, Adrián Larumbe wrote:
Hi Tvrtko,
Thanks!
[18153.770244] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:562
[18153.771059] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 203412, name: cat
[18153.771757] preempt_count: 1, expected: 0
[18153.772164] RCU nest depth: 0, expected: 0
[18153.772538] INFO: lockdep is turned off.
[18153.772898] CPU: 4 UID: 0 PID: 203412 Comm: cat Tainted: G W 6.14.0-rc1-panthor-next-rk3588-fdinfo+ #1
[18153.772906] Tainted: [W]=WARN
[18153.772908] Hardware name: Radxa ROCK 5B (DT)
[18153.772911] Call trace:
[18153.772913] show_stack+0x24/0x38 (C)
[18153.772927] dump_stack_lvl+0x3c/0x98
[18153.772935] dump_stack+0x18/0x24
[18153.772941] __might_resched+0x298/0x2b0
[18153.772948] __might_sleep+0x6c/0xb0
[18153.772953] __mutex_lock_common+0x7c/0x1950
[18153.772962] mutex_lock_nested+0x38/0x50
[18153.772969] panthor_fdinfo_gather_group_samples+0x80/0x138 [panthor]
[18153.773042] panthor_show_fdinfo+0x80/0x228 [panthor]
[18153.773109] drm_show_fdinfo+0x1a4/0x1e0 [drm]
[18153.773397] seq_show+0x274/0x358
[18153.773404] seq_read_iter+0x1d4/0x630
There is a mutex_lock literally in seq_read_iter.
So colour me confused. What created the atomic context between then and
Panthor code?! I just don't see it.
It's actually the xa_lock() we take when gathering fdinfo data that
puts us in this atomic context. In other words, the fix is correct, but
the explanation is wrong :-).