Without the patch, I can reproduce the hang fairly frequently, in one or two loops, which fails in this way:
[ 1069.711956] bcache: cancel_writeback_rate_update_dwork() give up waiting for dc->writeback_write_update to quit [ 1088.583986] INFO: task kworker/0:2:436 blocked for more than 120 seconds. [ 1088.590330] Tainted: P O 4.15.0-54-generic #58-Ubuntu [ 1088.595831] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 1088.598210] kworker/0:2 D 0 436 2 0x80000000 [ 1088.598244] Workqueue: events update_writeback_rate [bcache] [ 1088.598246] Call Trace: [ 1088.598255] __schedule+0x291/0x8a0 [ 1088.598258] ? __switch_to_asm+0x40/0x70 [ 1088.598260] schedule+0x2c/0x80 [ 1088.598262] schedule_preempt_disabled+0xe/0x10 [ 1088.598264] __mutex_lock.isra.2+0x18c/0x4d0 [ 1088.598266] ? __switch_to_asm+0x34/0x70 [ 1088.598268] ? __switch_to_asm+0x34/0x70 [ 1088.598270] ? __switch_to_asm+0x40/0x70 [ 1088.598272] __mutex_lock_slowpath+0x13/0x20 [ 1088.598274] ? __mutex_lock_slowpath+0x13/0x20 [ 1088.598276] mutex_lock+0x2f/0x40 [ 1088.598281] update_writeback_rate+0x98/0x2b0 [bcache] [ 1088.598285] process_one_work+0x1de/0x410 [ 1088.598287] worker_thread+0x32/0x410 [ 1088.598289] kthread+0x121/0x140 [ 1088.598291] ? process_one_work+0x410/0x410 [ 1088.598293] ? kthread_create_worker_on_cpu+0x70/0x70 [ 1088.598295] ret_from_fork+0x35/0x40
Without the patch, I can reproduce the hang fairly frequently, in one or two loops, which fails in this way:
[ 1069.711956] bcache: cancel_ writeback_ rate_update_ dwork() give up waiting for dc->writeback_ write_update to quit kernel/ hung_task_ timeout_ secs" disables this message. writeback_ rate [bcache] 0x291/0x8a0 to_asm+ 0x40/0x70 preempt_ disabled+ 0xe/0x10 lock.isra. 2+0x18c/ 0x4d0 to_asm+ 0x34/0x70 to_asm+ 0x34/0x70 to_asm+ 0x40/0x70 lock_slowpath+ 0x13/0x20 lock_slowpath+ 0x13/0x20 0x2f/0x40 writeback_ rate+0x98/ 0x2b0 [bcache] one_work+ 0x1de/0x410 thread+ 0x32/0x410 one_work+ 0x410/0x410 create_ worker_ on_cpu+ 0x70/0x70 fork+0x35/ 0x40
[ 1088.583986] INFO: task kworker/0:2:436 blocked for more than 120 seconds.
[ 1088.590330] Tainted: P O 4.15.0-54-generic #58-Ubuntu
[ 1088.595831] "echo 0 > /proc/sys/
[ 1088.598210] kworker/0:2 D 0 436 2 0x80000000
[ 1088.598244] Workqueue: events update_
[ 1088.598246] Call Trace:
[ 1088.598255] __schedule+
[ 1088.598258] ? __switch_
[ 1088.598260] schedule+0x2c/0x80
[ 1088.598262] schedule_
[ 1088.598264] __mutex_
[ 1088.598266] ? __switch_
[ 1088.598268] ? __switch_
[ 1088.598270] ? __switch_
[ 1088.598272] __mutex_
[ 1088.598274] ? __mutex_
[ 1088.598276] mutex_lock+
[ 1088.598281] update_
[ 1088.598285] process_
[ 1088.598287] worker_
[ 1088.598289] kthread+0x121/0x140
[ 1088.598291] ? process_
[ 1088.598293] ? kthread_
[ 1088.598295] ret_from_