Re: Nvme APST Quirk

2017-09-04 Thread Josh Boyer
On Mon, Sep 4, 2017 at 9:28 AM, Dominic Robinson  wrote:
> 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 
>
> 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.0 +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, 0xff) },
>
> { 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.

This needs to be submitted and merged into the upstream kernel.  Your
patch is missing a good changelog describing the problem, and the
Signed-off-by line required for all kernel patches.

josh
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org


Nvme APST Quirk

2017-09-04 Thread Dominic Robinson
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 

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.0 +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, 0xff) },

{ 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@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org