Bug 200397 - wacom driver fails to remove wacom_battery power supply worker
Summary: wacom driver fails to remove wacom_battery power supply worker
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_input-devices
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-03 04:27 UTC by tom
Modified: 2018-07-04 21:55 UTC (History)
2 users (show)

See Also:
Kernel Version: 4.18-rc2
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
dmesg showing wacom-related hung threads (86.65 KB, text/plain)
2018-07-03 04:27 UTC, tom
Details

Description tom 2018-07-03 04:27:27 UTC
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?
Comment 1 tom 2018-07-03 04:29:51 UTC
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

Note You need to log in before you can comment on or make changes to this bug.