nvme - reset_controller is not working after adapter's firmware upgrade (adapter quirk is needed)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Canonical Kernel Team | ||
Xenial |
Fix Released
|
Undecided
|
Tim Gardner | ||
Yakkety |
Won't Fix
|
High
|
Canonical Kernel Team |
Bug Description
== Comment: #16 - Guilherme Guaglianoni Piccoli <email address hidden> - 2016-07-12 15:46:17 ==
NVMe adapters provide an interface to reset the controller after a firmware (aka microcode) activation, so the new firmware can be used without rebooting the whole system, for example.
To achieve this, firstly one activate the firmware with the command:
"nvme fw-activate -a 2 -s 2 /dev/nvme0".
And then, one can perform the reset right after the activate command succeed:
"echo 1 > /sys/class/
The issue: in NVMe adapter from HGST vendor (PCI identification == 1c58:0003) this reset_controller feature does not work in recent kernels. The main reason is that the adapter is not dealing well with disabling the controller in the reset feature instead of shutdown it (as done in older kernels). To perform a successful reset, we need to delay 2 seconds before checking a specific bit during the reset process.
This delay was implemented as a per-device quirk in the nvme driver, and is accepted upstream. Currently, it's present on Jens Axboe kernel tree, ready to be merged on upstream 4.8 merge window.
We want to request the quirk's merge in Xenial's kernel. Below, the commit information on Axboe's tree:
54adc01055b7 ("nvme/quirk: Add a delay before checking for adapter readiness")
Thanks in advance,
Guilherme
tags: | added: architecture-ppc64le bugnameltc-136465 severity-high targetmilestone-inin16041 |
Changed in ubuntu: | |
assignee: | nobody → Taco Screen team (taco-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
assignee: | Taco Screen team (taco-screen-team) → Canonical Kernel Team (canonical-kernel-team) |
importance: | Undecided → High |
status: | New → Triaged |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu): | |
status: | Fix Committed → Fix Released |
https:/ /lists. ubuntu. com/archives/ kernel- team/2016- July/079178. html