2023-02-10 21:52:35

by Patrick McLean

[permalink] [raw]
Subject: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
SATA controllers:

ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
ata1.00: failed command: SEND FPDMA QUEUED
ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
0x4 (timeout)

Since this was seen previously with SSD 840 EVO drives in
https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
fix for these drives as the EVOs have, since they likely have very
similar firmwares.

Signed-off-by: Patrick McLean <[email protected]>
---
drivers/ata/libata-core.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 2ea572628b1c..c4c89d24f84c 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
{ "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM |
ATA_HORKAGE_NO_NCQ_ON_ATI },
+ { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
+ ATA_HORKAGE_ZERO_AFTER_TRIM |
+ ATA_HORKAGE_NO_NCQ_ON_ATI, },
{ "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM },

--
2.39.1



2023-02-11 03:12:01

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On 2/11/23 06:51, Patrick McLean wrote:
> Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
> SATA controllers:
>
> ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
> ata1.00: failed command: SEND FPDMA QUEUED
> ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
> res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
> 0x4 (timeout)
>
> Since this was seen previously with SSD 840 EVO drives in
> https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
> fix for these drives as the EVOs have, since they likely have very
> similar firmwares.
>
> Signed-off-by: Patrick McLean <[email protected]>
> ---
> drivers/ata/libata-core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 2ea572628b1c..c4c89d24f84c 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
> { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM |
> ATA_HORKAGE_NO_NCQ_ON_ATI },
> + { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> + ATA_HORKAGE_ZERO_AFTER_TRIM |
> + ATA_HORKAGE_NO_NCQ_ON_ATI, },
> { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM },
>

Looks OK, but ATA_HORKAGE_NO_NCQ_ON_ATI is for PCI vendor ID 1002h. AMD
also has vendor ID 1022h. Did you check you adapter vendor ID & tested
this patch ?

--
Damien Le Moal
Western Digital Research


2023-02-11 03:12:33

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On 2/11/23 06:51, Patrick McLean wrote:
> Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
> SATA controllers:
>
> ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
> ata1.00: failed command: SEND FPDMA QUEUED
> ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
> res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
> 0x4 (timeout)
>
> Since this was seen previously with SSD 840 EVO drives in
> https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
> fix for these drives as the EVOs have, since they likely have very
> similar firmwares.
>
> Signed-off-by: Patrick McLean <[email protected]>
> ---
> drivers/ata/libata-core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 2ea572628b1c..c4c89d24f84c 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
> { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM |
> ATA_HORKAGE_NO_NCQ_ON_ATI },
> + { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |

Are you sure about the upper case here for this drive model name ?

> + ATA_HORKAGE_ZERO_AFTER_TRIM |
> + ATA_HORKAGE_NO_NCQ_ON_ATI, },
> { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM },
>

--
Damien Le Moal
Western Digital Research


2023-02-13 20:17:13

by Patrick McLean

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On Sat, 11 Feb 2023 12:12:23 +0900
Damien Le Moal <[email protected]> wrote:

> On 2/11/23 06:51, Patrick McLean wrote:
> > Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
> > SATA controllers:
> >
> > ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
> > ata1.00: failed command: SEND FPDMA QUEUED
> > ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
> > res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
> > 0x4 (timeout)
> >
> > Since this was seen previously with SSD 840 EVO drives in
> > https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
> > fix for these drives as the EVOs have, since they likely have very
> > similar firmwares.
> >
> > Signed-off-by: Patrick McLean <[email protected]>
> > ---
> > drivers/ata/libata-core.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> > index 2ea572628b1c..c4c89d24f84c 100644
> > --- a/drivers/ata/libata-core.c
> > +++ b/drivers/ata/libata-core.c
> > @@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
> > { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> > ATA_HORKAGE_ZERO_AFTER_TRIM |
> > ATA_HORKAGE_NO_NCQ_ON_ATI },
> > + { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
>
> Are you sure about the upper case here for this drive model name ?
>
Yes, the drive model name is upper case. We have tested this patch and
it does resolve the problem on our hardware.
> > + ATA_HORKAGE_ZERO_AFTER_TRIM |
> > + ATA_HORKAGE_NO_NCQ_ON_ATI, },
> > { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> > ATA_HORKAGE_ZERO_AFTER_TRIM },
> >
>
> --
> Damien Le Moal
> Western Digital Research
>


--

2023-02-13 20:17:53

by Patrick McLean

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On Sat, 11 Feb 2023 12:11:48 +0900
Damien Le Moal <[email protected]> wrote:

> On 2/11/23 06:51, Patrick McLean wrote:
> > Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
> > SATA controllers:
> >
> > ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
> > ata1.00: failed command: SEND FPDMA QUEUED
> > ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
> > res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
> > 0x4 (timeout)
> >
> > Since this was seen previously with SSD 840 EVO drives in
> > https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
> > fix for these drives as the EVOs have, since they likely have very
> > similar firmwares.
> >
> > Signed-off-by: Patrick McLean <[email protected]>
> > ---
> > drivers/ata/libata-core.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> > index 2ea572628b1c..c4c89d24f84c 100644
> > --- a/drivers/ata/libata-core.c
> > +++ b/drivers/ata/libata-core.c
> > @@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
> > { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> > ATA_HORKAGE_ZERO_AFTER_TRIM |
> > ATA_HORKAGE_NO_NCQ_ON_ATI },
> > + { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> > + ATA_HORKAGE_ZERO_AFTER_TRIM |
> > + ATA_HORKAGE_NO_NCQ_ON_ATI, },
> > { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> > ATA_HORKAGE_ZERO_AFTER_TRIM },
> >
>
> Looks OK, but ATA_HORKAGE_NO_NCQ_ON_ATI is for PCI vendor ID 1002h. AMD
> also has vendor ID 1022h. Did you check you adapter vendor ID & tested
> this patch ?

We tested this patch, and it resolves the problem for us (we have been
using it for several months).

> --
> Damien Le Moal
> Western Digital Research
>


--

2023-02-14 01:33:30

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On 2/14/23 05:17, Patrick McLean wrote:
> On Sat, 11 Feb 2023 12:11:48 +0900
> Damien Le Moal <[email protected]> wrote:
>
>> On 2/11/23 06:51, Patrick McLean wrote:
>>> Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
>>> SATA controllers:
>>>
>>> ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
>>> ata1.00: failed command: SEND FPDMA QUEUED
>>> ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
>>> res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
>>> 0x4 (timeout)
>>>
>>> Since this was seen previously with SSD 840 EVO drives in
>>> https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
>>> fix for these drives as the EVOs have, since they likely have very
>>> similar firmwares.
>>>
>>> Signed-off-by: Patrick McLean <[email protected]>
>>> ---
>>> drivers/ata/libata-core.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
>>> index 2ea572628b1c..c4c89d24f84c 100644
>>> --- a/drivers/ata/libata-core.c
>>> +++ b/drivers/ata/libata-core.c
>>> @@ -4045,6 +4045,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
>>> { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
>>> ATA_HORKAGE_ZERO_AFTER_TRIM |
>>> ATA_HORKAGE_NO_NCQ_ON_ATI },
>>> + { "SAMSUNG*MZ7LH*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
>>> + ATA_HORKAGE_ZERO_AFTER_TRIM |
>>> + ATA_HORKAGE_NO_NCQ_ON_ATI, },
>>> { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
>>> ATA_HORKAGE_ZERO_AFTER_TRIM },
>>>
>>
>> Looks OK, but ATA_HORKAGE_NO_NCQ_ON_ATI is for PCI vendor ID 1002h. AMD
>> also has vendor ID 1022h. Did you check you adapter vendor ID & tested
>> this patch ?
>
> We tested this patch, and it resolves the problem for us (we have been
> using it for several months).

OK. Thanks for confirming. Will apply in a little while. Thanks !

>
>> --
>> Damien Le Moal
>> Western Digital Research
>>
>
>

--
Damien Le Moal
Western Digital Research


2023-02-14 03:28:05

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] ata: libata-core: Disable READ LOG DMA EXT for Samsung MZ7LH

On 2/11/23 06:51, Patrick McLean wrote:
> Samsung MZ7LH drives are spewing messages like this in to dmesg with AMD
> SATA controllers:
>
> ata1.00: exception Emask 0x0 SAct 0x7e0000 SErr 0x0 action 0x6 frozen
> ata1.00: failed command: SEND FPDMA QUEUED
> ata1.00: cmd 64/01:88:00:00:00/00:00:00:00:00/a0 tag 17 ncq dma 512 out
> res 40/00:01:01:4f:c2/00:00:00:00:00/00 Emask
> 0x4 (timeout)
>
> Since this was seen previously with SSD 840 EVO drives in
> https://bugzilla.kernel.org/show_bug.cgi?id=203475 let's add the same
> fix for these drives as the EVOs have, since they likely have very
> similar firmwares.
>
> Signed-off-by: Patrick McLean <[email protected]>

Applied to for-6.2-fixes. Thanks !

--
Damien Le Moal
Western Digital Research