2021-01-05 08:08:11

by Stephan Müller

[permalink] [raw]
Subject: Testmgr: invalid lock context

Hi,

with the current cryptodev-2.6 tree and the Linus rc-2 tree, I get the
following during boot:

[ 0.837048] =============================
[ 0.837079] [ BUG: Invalid wait context ]
[ 0.837079] 5.11.0-rc1+ #215 Not tainted
[ 0.837079] -----------------------------
[ 0.837079] cryptomgr_test/137 is trying to lock:
[ 0.837079] ffffffff914e8e98 (depot_lock){..-.}-{3:3}, at:
stack_depot_save+0x1c8/0x4e0
[ 0.837079] other info that might help us debug this:
[ 0.837079] context-{5:5}
[ 0.837079] 2 locks held by cryptomgr_test/137:
[ 0.837079] #0: ffffffff910aaa00 (rcu_read_lock){....}-{1:3}, at:
__queue_work+0x65/0x8e0
[ 0.837079] #1: ffff88807ea34fd8 (&pool->lock){....}-{2:2}, at:
__queue_work+0x244/0x8e0
[ 0.837079] stack backtrace:
[ 0.837079] CPU: 1 PID: 137 Comm: cryptomgr_test Not tainted 5.11.0-rc1+
#215
[ 0.837079] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.14.0-1.fc33 04/01/2014
[ 0.837079] Call Trace:
[ 0.837079] dump_stack+0x9a/0xcc
[ 0.837079] __lock_acquire.cold+0xdd/0x345
[ 0.837079] ? stack_trace_call+0xd3/0x5a0
[ 0.837079] ? deref_stack_reg+0x93/0xb0
[ 0.837079] ? preempt_count_sub+0x14/0xc0
[ 0.837079] ? lockdep_hardirqs_on_prepare+0x230/0x230
[ 0.837079] ? preempt_count_sub+0x14/0xc0
[ 0.837079] ? unwind_next_frame+0x235/0xb80
[ 0.837079] ? ret_from_fork+0x1f/0x30
[ 0.837079] lock_acquire+0x241/0x650
[ 0.837079] ? stack_depot_save+0x1c8/0x4e0
[ 0.837079] ? lock_release+0x440/0x440
[ 0.837079] ? arch_stack_walk+0x88/0xf0
[ 0.837079] ? ret_from_fork+0x1f/0x30
[ 0.837079] _raw_spin_lock_irqsave+0x3e/0x60
[ 0.837079] ? stack_depot_save+0x1c8/0x4e0
[ 0.837079] stack_depot_save+0x1c8/0x4e0
[ 0.837079] kasan_save_stack+0x32/0x40
[ 0.837079] ? kasan_save_stack+0x1b/0x40
[ 0.837079] ? kasan_record_aux_stack+0xb7/0xe0
[ 0.837079] ? insert_work+0x2d/0x130
[ 0.837079] ? __queue_work+0x36d/0x8e0
[ 0.837079] ? queue_work_on+0x78/0x80
[ 0.837079] ? alg_test.cold+0xbb/0xc0
[ 0.837079] ? cryptomgr_test+0x36/0x60
[ 0.837079] ? kthread+0x213/0x240
[ 0.837079] ? ret_from_fork+0x1f/0x30
[ 0.837079] ? lockdep_hardirqs_on_prepare+0x230/0x230
[ 0.837079] ? lockdep_hardirqs_on_prepare+0x230/0x230
[ 0.837079] ? cryptomgr_test+0x36/0x60
[ 0.837079] ? ret_from_fork+0x1f/0x30
[ 0.837079] ? lock_acquire+0x241/0x650
[ 0.837079] ? lock_release+0x440/0x440
[ 0.837079] ? lock_release+0x440/0x440
[ 0.837079] ? do_raw_spin_lock+0x119/0x1b0
[ 0.837079] ? rwlock_bug.part.0+0x60/0x60
[ 0.837079] kasan_record_aux_stack+0xb7/0xe0
[ 0.837079] insert_work+0x2d/0x130
[ 0.837079] __queue_work+0x36d/0x8e0
[ 0.837079] ? rcu_read_lock_sched_held+0x3f/0x70
[ 0.837079] queue_work_on+0x78/0x80
[ 0.837079] alg_test.cold+0xbb/0xc0
[ 0.837079] ? test_cipher+0x330/0x330
[ 0.837079] ? __kthread_parkme+0x66/0xf0
[ 0.837079] ? lock_downgrade+0x3b0/0x3b0
[ 0.837079] ? mark_held_locks+0x24/0x90
[ 0.837079] ? lockdep_hardirqs_on_prepare+0x133/0x230
[ 0.837079] ? _raw_spin_unlock_irqrestore+0x47/0x60
[ 0.837079] ? lockdep_hardirqs_on+0x79/0x100
[ 0.837079] ? preempt_count_sub+0x14/0xc0
[ 0.837079] ? crypto_acomp_scomp_free_ctx+0x70/0x70
[ 0.837079] cryptomgr_test+0x36/0x60
[ 0.837079] kthread+0x213/0x240
[ 0.837079] ? kthread_create_worker_on_cpu+0xd0/0xd0
[ 0.837079] ret_from_fork+0x1f/0x30

I will also have a look into this.

Ciao
Stephan