[Hyper-V] hv: util: move waiting for release to hv_utils_transport itself
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Critical
|
Joseph Salisbury | ||
Xenial |
Fix Released
|
Critical
|
Joseph Salisbury | ||
Yakkety |
Fix Released
|
Critical
|
Joseph Salisbury | ||
Zesty |
Fix Released
|
Critical
|
Joseph Salisbury |
Bug Description
We are observing call traces with the -73 and -74 proposed kernels that look like this:
[ 240.408061] INFO: task kworker/14:1:179 blocked for more than 120 seconds.
[ 240.412299] Not tainted 4.4.0-73-generic #94-Ubuntu
[ 240.415546] "echo 0 > /proc/sys/
[ 240.420217] kworker/14:1 D ffff8804e6f23b68 0 179 2 0x00000000
[ 240.420229] Workqueue: hv_vmbus_con vmbus_onmessage
[ 240.420236] ffff8804e6f23b68 00000001810000f9 ffff8804ed944600 ffff8804e6fe3800
[ 240.420241] ffff8804e6f24000 ffffffffc0187a48 ffffffffc0187a40 ffff8804e6fe3800
[ 240.420243] ffff8804ea196800 ffff8804e6f23b80 ffffffff81837845 7fffffffffffffff
[ 240.420245] Call Trace:
[ 240.420254] [<ffffffff81837
[ 240.420256] [<ffffffff8183a
[ 240.420260] [<ffffffff811ed
[ 240.420264] [<ffffffff811ad
[ 240.420268] [<ffffffff813fa
[ 240.420270] [<ffffffff813fa
[ 240.420272] [<ffffffff81838
[ 240.420276] [<ffffffff810ac
[ 240.420284] [<ffffffffc0184
[ 240.420288] [<ffffffffc0183
[ 240.420294] [<ffffffffc000c
[ 240.420301] [<ffffffff8155d
[ 240.420303] [<ffffffff8155d
[ 240.420306] [<ffffffff8155c
[ 240.420308] [<ffffffff81558
[ 240.420310] [<ffffffff81558
[ 240.420313] [<ffffffffc000d
[ 240.420316] [<ffffffffc0011
[ 240.420324] [<ffffffffc0011
[ 240.420327] [<ffffffffc000d
[ 240.420331] [<ffffffff8109a
[ 240.420335] [<ffffffff8109a
[ 240.420338] [<ffffffff8109a
[ 240.420341] [<ffffffff8109a
[ 240.420345] [<ffffffff810a0
[ 240.420347] [<ffffffff810a0
[ 240.420350] [<ffffffff8183b
[ 240.420352] [<ffffffff810a0
[ 317.360035] serial8250: too much work for irq3
The following commit should fix this issue:
Waiting for release_event in all three drivers introduced issues on release
as on_reset() hook is not always called. E.g. if the device was never
opened we will never get the completion.
Move the waiting code to hvutil_
only called when the device is open. hvt->lock serialization should
guarantee the absence of races.
Fixes: 5a66fecbf6aa ("Drivers: hv: util: kvp: Fix a rescind processing issue")
Fixes: 20951c7535b5 ("Drivers: hv: util: Fcopy: Fix a rescind processing issue")
Fixes: d77044d142e9 ("Drivers: hv: util: Backup: Fix a rescind processing issue")
Reported-by: Dexuan Cui <email address hidden>
Tested-by: Dexuan Cui <email address hidden>
Signed-off-by: Vitaly Kuznetsov <email address hidden>
Signed-off-by: K. Y. Srinivasan <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Changed in linux (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in linux (Ubuntu Yakkety): | |
status: | New → In Progress |
Changed in linux (Ubuntu Zesty): | |
status: | Confirmed → In Progress |
Changed in linux (Ubuntu Xenial): | |
importance: | Undecided → Critical |
Changed in linux (Ubuntu Yakkety): | |
importance: | Undecided → Critical |
Changed in linux (Ubuntu Zesty): | |
importance: | Undecided → Critical |
Changed in linux (Ubuntu Xenial): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Yakkety): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Zesty): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
tags: | added: kernel-hyper-v xenial yakkety zesty |
Changed in linux (Ubuntu Zesty): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Yakkety): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu): | |
status: | Fix Committed → Fix Released |
This appears to affect 4.4, 4.8, and 4.10