Hi,
Apologies if this is the incorrect medium in which to send patches.
There is a significant issue with the apst code that has been merged for the nvme driver under kernels >= 4.11 . The issue impacts some versions of Samsung’s firmware on sm961/pm961 and 960 nvme drives. The issue causes the drive to go into ‘deep sleep’ without warning and no way of bringing the interface back up.
Historically this issue has been reported against specific dell hardware and there has been a hunk of code to check for the presence of that hardware before calling NVME_QUIRK_NO_DEEPEST_PS. However I can confirm that with nvme apst support merged this issue arises with multiple mainboards. This is a critical issue because it can result in data loss, the way in which the issue manifests does not alert the user to the fact that the drive has dropped off. There is however an extremely simple fix – just call the NVME_QUIRK_NO_DEEPEST_PS quirk unconditionally with this hardware. From: Dominic Robinson <github@xxxxxxxxxx> Date: Fri, 1 Sep 2017 15:38:44 +0100 Subject: Turn off deepest power saving mode for pm961 drives diff -aurN a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c --- a/drivers/nvme/host/pci.c 2017-07-03 00:07:02.000000000 +0100 +++ b/drivers/nvme/host/pci.c 2017-09-01 15:38:44.041550898 +0100 @@ -2302,6 +2302,8 @@ .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, }, { PCI_DEVICE(0x1c5f, 0x0540), /* Memblaze Pblaze4 adapter */ .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, }, + { PCI_DEVICE(0x144d, 0xa804), /* Samsung pm961 */ + .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) }, { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) }, { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) }, I have already filed a bug report – not getting a response: https://bugzilla.redhat.com/show_bug.cgi?id=1487421 I can confirm this patch works – I’d really like to get it merged, as of right now there are no available kernels in Fedora 26 that are immune to this issue.
Kind Regards, Dominic Robinson |
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx