New deadlock?
Jookia
contact at jookia.org
Thu Mar 12 22:22:37 EDT 2020
I was debugging the big deadlock that's fixed in staging-next when I hit
this backtrace. Anybody have any ideas on what's going on here?
================================
WARNING: inconsistent lock state
5.6.0-rc5jook #1 Tainted: G C
--------------------------------
inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
ffffffff8543c8e0 (console_lock){?.+.}, at: speakup_clear_selection+0xe/0x20 [speakup]
{HARDIRQ-ON-W} state was registered at:
lock_acquire+0x13f/0x370
console_lock+0x33/0x50
con_init+0x17/0x644
console_init+0x335/0x4b3
start_kernel+0x4e8/0x7af
x86_64_start_reservations+0x24/0x26
x86_64_start_kernel+0xf5/0xfc
secondary_startup_64+0xb6/0xc0
irq event stamp: 2657920
hardirqs last enabled at (2657917): [<ffffffff83b64d4a>] cpuidle_enter_state+0x11a/0xda0
hardirqs last disabled at (2657918): [<ffffffff82206c31>] trace_hardirqs_off_thunk+0x1a/0x1c
softirqs last enabled at (2657920): [<ffffffff823f30c1>] _local_bh_enable+0x21/0x40
softirqs last disabled at (2657919): [<ffffffff823f41bc>] irq_enter+0xac/0xe0
\x0aother info that might help us debug this:
Possible unsafe locking scenario:\x0a
CPU0
----
lock(console_lock);
<Interrupt>
lock(console_lock);
\x0a *** DEADLOCK ***\x0a
6 locks held by swapper/0/0:
#0: ffff8881583820e8 (&serio->lock){-.-.}, at: serio_interrupt+0x2e/0x120 [serio]
#1: ffff888157873228 (&(&dev->event_lock)->rlock){-.-.}, at: input_event+0x53/0x90
#2: ffffffff85451240 (rcu_read_lock){....}, at: input_pass_values+0x2d/0x5a0
#3: ffffffff85abf438 (kbd_event_lock){-.-.}, at: kbd_event+0x9a/0x3b20
#4: ffffffff85451240 (rcu_read_lock){....}, at: __atomic_notifier_call_chain+0x5/0x130
#5: ffffffffc0c100f8 (speakup_info.spinlock){-.-.}, at: keyboard_notifier_call+0x774/0x4a40 [speakup]
\x0astack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G C 5.6.0-rc5jook #1
Hardware name: LENOVO 6474B86/6474B86, BIOS CBET4000 4.5-732-gcc9095f 02/12/2017
Call Trace:
<IRQ>
dump_stack+0xc2/0x11a
print_usage_bug.cold+0x3e0/0x4b1
mark_lock+0xd95/0x1390
? print_irq_inversion_bug+0xa0/0xa0
__lock_acquire+0x21eb/0x5730
? __kasan_check_read+0x11/0x20
? check_chain_key+0x215/0x5e0
? register_lock_class+0x1580/0x1580
? lock_downgrade+0x7a0/0x7a0
? __rwlock_init+0x140/0x140
lock_acquire+0x13f/0x370
? speakup_clear_selection+0xe/0x20 [speakup]
console_lock+0x33/0x50
? speakup_clear_selection+0xe/0x20 [speakup]
speakup_clear_selection+0xe/0x20 [speakup]
speakup_cut+0x19e/0x4b0 [speakup]
keyboard_notifier_call+0x1f04/0x4a40 [speakup]
? read_all_doc+0x240/0x240 [speakup]
notifier_call_chain+0xbf/0x130
__atomic_notifier_call_chain+0x80/0x130
atomic_notifier_call_chain+0x16/0x20
kbd_event+0x7d7/0x3b20
? k_pad+0x850/0x850
? sysrq_filter+0x450/0xd40
input_to_handler+0x362/0x4b0
? rcu_read_lock_sched_held+0xe0/0xe0
input_pass_values+0x408/0x5a0
? __rwlock_init+0x140/0x140
? lock_acquire+0x13f/0x370
input_handle_event+0x70e/0x1380
input_event+0x67/0x90
atkbd_interrupt+0xe62/0x1d4e [atkbd]
? __kasan_check_write+0x14/0x20
? atkbd_event_work+0x130/0x130 [atkbd]
? _raw_spin_lock_irqsave+0x26/0x70
serio_interrupt+0x93/0x120 [serio]
i8042_interrupt+0x232/0x510 [i8042]
? rcu_read_lock_bh_held+0xd0/0xd0
? handle_irq_event+0xa5/0x13a
? i8042_remove+0x1f0/0x1f0 [i8042]
__handle_irq_event_percpu+0xe6/0x6c0
handle_irq_event_percpu+0x71/0x150
? __handle_irq_event_percpu+0x6c0/0x6c0
? __kasan_check_read+0x11/0x20
? do_raw_spin_unlock+0x5c/0x240
handle_irq_event+0xad/0x13a
handle_edge_irq+0x233/0xa90
do_IRQ+0x10b/0x310
common_interrupt+0xf/0xf
</IRQ>
RIP: 0010:cpuidle_enter_state+0x11e/0xda0
Code: b8 5d 94 fe 80 7d c0 00 74 17 9c 58 66 66 90 66 90 f6 c4 02 0f 85 fe 07 00 00 31 ff e8 7b 80 ac fe e8 46 b8 c2 fe fb 66 66 90 <66> 66 90 45 85 ed 0f 88 42 06 00 00 4d 63 f5 49 83 fe 09 0f 87 4c
RSP: 0018:ffffffff85207cb0 EFLAGS: 00000286 ORIG_RAX: ffffffffffffffdb
RAX: 0000000000000007 RBX: ffff88815a452f90 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000006 RDI: ffffffff85226fc4
RBP: ffffffff85207d08 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffff859bfd60
R13: 0000000000000003 R14: ffffffff859bfeb0 R15: 0000000000000003
cpuidle_enter+0x4f/0xa0
do_idle+0x41d/0x5a0
? arch_cpu_idle_exit+0x50/0x50
cpu_startup_entry+0x20/0x22
rest_init+0x1e4/0x32d
arch_call_rest_init+0xe/0x1b
start_kernel+0x774/0x7af
? thread_stack_cache_init+0xb/0xb
x86_64_start_reservations+0x24/0x26
x86_64_start_kernel+0xf5/0xfc
secondary_startup_64+0xb6/0xc0
Selection: mark console not the same as cut
More information about the Speakup
mailing list