Bug 200397
Summary: | wacom driver fails to remove wacom_battery power supply worker | ||
---|---|---|---|
Product: | Drivers | Reporter: | tom |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | NEW --- | ||
Severity: | normal | CC: | dmitry.torokhov, pingc |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 4.18-rc2 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: | dmesg showing wacom-related hung threads |
Replicating the relevant parts from the attached kernel log for ease of access: Jul 03 11:11:05 jet kernel: INFO: task kworker/2:1:64 blocked for more than 120 seconds. Jul 03 11:11:05 jet kernel: Not tainted 4.18.0-rc2 #1-NixOS Jul 03 11:11:05 jet kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Jul 03 11:11:05 jet kernel: kworker/2:1 D 0 64 2 0x80000000 Jul 03 11:11:05 jet kernel: Workqueue: events_power_efficient power_supply_deferred_register_work Jul 03 11:11:05 jet kernel: Call Trace: Jul 03 11:11:05 jet kernel: ? __schedule+0x1d3/0x6f0 Jul 03 11:11:05 jet kernel: ? __switch_to_asm+0x40/0x70 Jul 03 11:11:05 jet kernel: ? __switch_to_asm+0x40/0x70 Jul 03 11:11:05 jet kernel: schedule+0x28/0x80 Jul 03 11:11:05 jet kernel: schedule_preempt_disabled+0xa/0x10 Jul 03 11:11:05 jet kernel: __mutex_lock.isra.4+0x18c/0x4d0 Jul 03 11:11:05 jet kernel: ? __switch_to_asm+0x40/0x70 Jul 03 11:11:05 jet kernel: ? __switch_to_asm+0x40/0x70 Jul 03 11:11:05 jet kernel: ? __switch_to_asm+0x34/0x70 Jul 03 11:11:05 jet kernel: ? power_supply_deferred_register_work+0x26/0x50 Jul 03 11:11:05 jet kernel: power_supply_deferred_register_work+0x26/0x50 Jul 03 11:11:05 jet kernel: process_one_work+0x1f4/0x3e0 Jul 03 11:11:05 jet kernel: worker_thread+0x2d/0x3e0 Jul 03 11:11:05 jet kernel: ? process_one_work+0x3e0/0x3e0 Jul 03 11:11:05 jet kernel: kthread+0x113/0x130 Jul 03 11:11:05 jet kernel: ? kthread_create_worker_on_cpu+0x70/0x70 Jul 03 11:11:05 jet kernel: ret_from_fork+0x35/0x40 Jul 03 11:11:05 jet kernel: INFO: task systemd-udevd:536 blocked for more than 120 seconds. Jul 03 11:11:05 jet kernel: Not tainted 4.18.0-rc2 #1-NixOS Jul 03 11:11:05 jet kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Jul 03 11:11:05 jet kernel: systemd-udevd D 0 536 496 0x80000184 Jul 03 11:11:05 jet kernel: Call Trace: Jul 03 11:11:05 jet kernel: ? __schedule+0x1d3/0x6f0 Jul 03 11:11:05 jet kernel: ? enqueue_entity+0x2ab/0x930 Jul 03 11:11:05 jet kernel: ? get_work_pool+0x40/0x40 Jul 03 11:11:05 jet kernel: schedule+0x28/0x80 Jul 03 11:11:05 jet kernel: schedule_timeout+0x1ee/0x380 Jul 03 11:11:05 jet kernel: ? get_work_pool+0x40/0x40 Jul 03 11:11:05 jet kernel: wait_for_completion+0xc0/0x150 Jul 03 11:11:05 jet kernel: ? wake_up_q+0x70/0x70 Jul 03 11:11:05 jet kernel: flush_work+0x11e/0x1d0 Jul 03 11:11:05 jet kernel: ? worker_detach_from_pool+0xa0/0xa0 Jul 03 11:11:05 jet kernel: __cancel_work_timer+0x126/0x1b0 Jul 03 11:11:05 jet kernel: power_supply_unregister+0x33/0xa0 Jul 03 11:11:05 jet kernel: release_nodes+0x105/0x1f0 Jul 03 11:11:05 jet kernel: wacom_remove+0xc4/0x110 [wacom] Jul 03 11:11:05 jet kernel: hid_device_remove+0x4f/0xb0 [hid] Jul 03 11:11:05 jet kernel: device_release_driver_internal+0x182/0x250 Jul 03 11:11:05 jet kernel: ? __hid_bus_driver_added+0x30/0x30 [hid] Jul 03 11:11:05 jet kernel: ? hid_destroy_device+0x60/0x60 [hid] Jul 03 11:11:05 jet kernel: device_reprobe+0x33/0x80 Jul 03 11:11:05 jet kernel: bus_for_each_dev+0x76/0xc0 Jul 03 11:11:05 jet kernel: __hid_bus_driver_added+0x28/0x30 [hid] Jul 03 11:11:05 jet kernel: bus_for_each_drv+0x66/0xb0 Jul 03 11:11:05 jet kernel: __hid_register_driver+0x6b/0x70 [hid] Jul 03 11:11:05 jet kernel: ? 0xffffffffc021f000 Jul 03 11:11:05 jet kernel: do_one_initcall+0x46/0x1c8 Jul 03 11:11:05 jet kernel: ? _cond_resched+0x15/0x40 Jul 03 11:11:05 jet kernel: ? kmem_cache_alloc_trace+0x15b/0x1c0 Jul 03 11:11:05 jet kernel: do_init_module+0x5b/0x201 Jul 03 11:11:05 jet kernel: load_module+0x2311/0x28f0 Jul 03 11:11:05 jet kernel: ? __do_sys_init_module+0x14f/0x180 Jul 03 11:11:05 jet kernel: __do_sys_init_module+0x14f/0x180 Jul 03 11:11:05 jet kernel: do_syscall_64+0x4e/0x100 Jul 03 11:11:05 jet kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9 Jul 03 11:11:05 jet kernel: RIP: 0033:0x7f62f986bc2a Jul 03 11:11:05 jet kernel: Code: Bad RIP value. Jul 03 11:11:05 jet kernel: RSP: 002b:00007ffd32250598 EFLAGS: 00000246 ORIG_RAX: 00000000000000af Jul 03 11:11:05 jet kernel: RAX: ffffffffffffffda RBX: 000055782ede93a0 RCX: 00007f62f986bc2a Jul 03 11:11:05 jet kernel: RDX: 00007f62fa1b644d RSI: 0000000000009008 RDI: 000055782ee0b2a0 Jul 03 11:11:05 jet kernel: RBP: 00007f62fa1b644d R08: 000000000001bea0 R09: 0000000000023eb0 Jul 03 11:11:05 jet kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 000055782ee0b2a0 Jul 03 11:11:05 jet kernel: R13: 000055782ede23a0 R14: 0000000000020000 R15: 0000000000000000 |
Created attachment 277147 [details] dmesg showing wacom-related hung threads Dell XPS 9365 laptop with a Wacom touchscreen/pen input via i2c. I believe this was introduced in 4.17 early rc versions and persists into 4.18-rc. I haven't been able to reproduce on 4.16.3. An intermittent problem occurs on some system boots: - during bootup, the systemd-udev-settle service hangs until it's killed by a 3 min timeout. - once booted, the touchscreen device is not present/working. - once booted, the unrelated synaptics touchpad also doesn't seem to work (although it is detected and visible by libinput). - once booted, kernel logs kworker and systemd-udevd as hung tasks. On other system boots, this all works fine and the touchscreen and touchpad both work perfectly. The kernel log indicates that the wacom driver is being reprobed, which entails removing the hid device - but this fails to remove a dependent wacom_battery power supply device and seems to get stuck forever. I'm not sure why this wacom_battery power supply device is even created for this particular wacom model - since it's a device built in to a laptop which I assume doesn't have a separate battery. Perhaps because this i2c connected wacom device is just seen as a generic wacom hid device, and some of those have batteries?