2021-08-23 09:53:58

by Hans de Goede

[permalink] [raw]
Subject: [PATCH] libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs

Commit ca6bfcb2f6d9 ("libata: Enable queued TRIM for Samsung SSD 860")
limited the existing ATA_HORKAGE_NO_NCQ_TRIM quirk from "Samsung SSD 8*",
covering all Samsung 800 series SSDs, to only apply to "Samsung SSD 840*"
and "Samsung SSD 850*" series based on information from Samsung.

But there is a large number of users which is still reporting issues
with the Samsung 860 and 870 SSDs combined with Intel, ASmedia or
Marvell SATA controllers and all reporters also report these problems
going away when disabling queued trims.

Note that with AMD SATA controllers users are reporting even worse
issues and only completely disabling NCQ helps there, this will be
addressed in a separate patch.

Fixes: ca6bfcb2f6d9 ("libata: Enable queued TRIM for Samsung SSD 860")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=203475
Cc: [email protected]
Cc: Kate Hsuan <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
---
drivers/ata/libata-core.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 61c762961ca8..3eda3291952b 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3950,6 +3950,10 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
ATA_HORKAGE_ZERO_AFTER_TRIM, },
{ "Samsung SSD 850*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },
+ { "Samsung SSD 860*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
+ ATA_HORKAGE_ZERO_AFTER_TRIM, },
+ { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
+ ATA_HORKAGE_ZERO_AFTER_TRIM, },
{ "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },

--
2.31.1


2021-08-23 14:17:23

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs

On 2021/08/23 18:52, Hans de Goede wrote:
> Commit ca6bfcb2f6d9 ("libata: Enable queued TRIM for Samsung SSD 860")
> limited the existing ATA_HORKAGE_NO_NCQ_TRIM quirk from "Samsung SSD 8*",
> covering all Samsung 800 series SSDs, to only apply to "Samsung SSD 840*"
> and "Samsung SSD 850*" series based on information from Samsung.
>
> But there is a large number of users which is still reporting issues
> with the Samsung 860 and 870 SSDs combined with Intel, ASmedia or
> Marvell SATA controllers and all reporters also report these problems
> going away when disabling queued trims.
>
> Note that with AMD SATA controllers users are reporting even worse
> issues and only completely disabling NCQ helps there, this will be
> addressed in a separate patch.
>
> Fixes: ca6bfcb2f6d9 ("libata: Enable queued TRIM for Samsung SSD 860")
> BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=203475
> Cc: [email protected]
> Cc: Kate Hsuan <[email protected]>
> Signed-off-by: Hans de Goede <[email protected]>
> ---
> drivers/ata/libata-core.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 61c762961ca8..3eda3291952b 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -3950,6 +3950,10 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
> ATA_HORKAGE_ZERO_AFTER_TRIM, },
> { "Samsung SSD 850*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM, },
> + { "Samsung SSD 860*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> + ATA_HORKAGE_ZERO_AFTER_TRIM, },
> + { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> + ATA_HORKAGE_ZERO_AFTER_TRIM, },
> { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
> ATA_HORKAGE_ZERO_AFTER_TRIM, },
>
>
Reviewed-by: Damien Le Moal <[email protected]>

--
Damien Le Moal
Western Digital Research

2021-08-23 14:49:16

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs


Hans,

> But there is a large number of users which is still reporting issues
> with the Samsung 860 and 870 SSDs combined with Intel, ASmedia or
> Marvell SATA controllers and all reporters also report these problems
> going away when disabling queued trims.

I originally tested queued trim with 860 drives and never had an issue
on my systems. But no objections wrt. turning it off.

Reviewed-by: Martin K. Petersen <[email protected]>

--
Martin K. Petersen Oracle Linux Engineering