NVMe shutdown and suspend delay time is too short
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Alex Hung | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned | ||
linux-lts-utopic (Ubuntu) |
Fix Released
|
High
|
Alex Hung | ||
Trusty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
A hardware vendor reported that NVMe didn't implement power management correctly during shutdown/restart and suspend/resume as below:
=======
However, when it comes to shutdown/restart, the Power Management Events (PME) are not correctly implemented.
When the host (Linux/Driver) sends the PME_TURN_OFF message it should wait for PME_TO_ACK from the device.
Microsoft Windows versions typically wait for 5 seconds.
The Linux OSes doesn't wait for the PME_TO_ACK from the device and simply turns off the system instantly immediately after the shutdown/restart.
This is not the way to treat PCIe storage devices. The host should allow the device to properly shutdown. Otherwise the disk will go in to rebuild during next power on which takes a while resulting in OS finding the device not responding and disabling it and not loading the driver for it.
=======
Changed in linux-lts-trusty (Ubuntu): | |
assignee: | nobody → Alex Hung (alexhung) |
Changed in linux-lts-utopic (Ubuntu): | |
assignee: | nobody → Alex Hung (alexhung) |
Changed in linux-lts-trusty (Ubuntu): | |
importance: | Undecided → High |
Changed in linux-lts-utopic (Ubuntu): | |
importance: | Undecided → High |
no longer affects: | linux-lts-trusty (Ubuntu Trusty) |
no longer affects: | linux-lts-utopic (Ubuntu Precise) |
no longer affects: | linux (Ubuntu Trusty) |
no longer affects: | linux (Ubuntu Precise) |
no longer affects: | linux-lts-utopic (Ubuntu Utopic) |
no longer affects: | linux-lts-trusty (Ubuntu Utopic) |
no longer affects: | linux-lts-trusty (Ubuntu) |
no longer affects: | linux-lts-trusty (Ubuntu Precise) |
Changed in linux (Ubuntu Utopic): | |
status: | New → Fix Committed |
Changed in linux-lts-utopic (Ubuntu Trusty): | |
status: | New → Fix Committed |
Changed in linux-lts-utopic (Ubuntu): | |
status: | New → Fix Committed |
tags: |
added: verification-done-trusty verification-done-utopic removed: verification-needed-trusty verification-needed-utopic |
Changed in linux-lts-utopic (Ubuntu): | |
status: | Fix Committed → Fix Released |
A patch in newer kernel (3.19 and later) has a fix for this as below:
commit 2484f40780b97df 1b5eb09e78ce4ef aa78b21875
Author: Dan McLeran <email address hidden>
Date: Tue Jul 1 09:33:32 2014 -0600
NVMe: Add shutdown timeout as module parameter.
The current implementation hard-codes the shutdown timeout to 2 seconds.
Some devices take longer than this to complete a normal shutdown.
Changing the shutdown timeout to a module parameter with a default
timeout of 5 seconds.
Signed-off-by: Dan McLeran <email address hidden>
Signed-off-by: Matthew Wilcox <email address hidden>
Signed-off-by: Jens Axboe <email address hidden>
However, this patch is not included in 3.13 or 3.16