Re: git: c01af41c3c8f - main - ata_da: add quirk to disable NCQ TRIM for Samsung 860/870 SSDs

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Mon, 19 Feb 2024 11:03:08 UTC
On 19/02/2024 12:47, cglogic wrote:
> Hello Andriy,
> 
> I use ZFS with autotrim enabled on Samsung 860 PRO connected to Intel AHCI SATA controller for 9 years without any issue.

I think that it was released in 2018?

> Can I disable this quirk locally or have I revert the patch to continue use NCQ TRIM with this SSD?

I don't think that there is a way to disable the quirk, so you'll have to revert.
Note that ATA TRIM is still enabled, it's only NCQ TRIM that got disabled.

> On Monday, February 19th, 2024 at 12:09 PM, Andriy Gapon <avg@FreeBSD.org> wrote:
> 
>> The branch main has been updated by avg:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=c01af41c3c8fdd570764ff9b6bfbad6ac9ca1664
>>
>> commit c01af41c3c8fdd570764ff9b6bfbad6ac9ca1664
>> Author: Andriy Gapon avg@FreeBSD.org
>>
>> AuthorDate: 2024-02-19 10:08:12 +0000
>> Commit: Andriy Gapon avg@FreeBSD.org
>>
>> CommitDate: 2024-02-19 10:08:12 +0000
>>
>> ata_da: add quirk to disable NCQ TRIM for Samsung 860/870 SSDs
>>
>> NCQ TRIM for Samsung 860/870 SSDs results in data corruption on systems
>> with some SATA controllers.
>>
>> This can be easily reproduced using ZFS which uses TRIM and is able to
>> detect block content changes.
>>
>> Linux bug report for this issue:
>> https://bugzilla.kernel.org/show_bug.cgi?id=201693
>>
>> Since at present we can not limit a quirk based on the contorller / SIM,
>> apply the quirk in all cases.
>>
>> Reviewed by: imp
>> MFC after: 2 weeks
>> Differential Revision: https://reviews.freebsd.org/D43961
>> ---
>> sys/cam/ata/ata_da.c | 16 ++++++++++++++++
>> 1 file changed, 16 insertions(+)
>>
>> diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c
>> index f5d3aeca9329..d4a591943307 100644
>> --- a/sys/cam/ata/ata_da.c
>> +++ b/sys/cam/ata/ata_da.c
>> @@ -727,6 +727,22 @@ static struct ada_quirk_entry ada_quirk_table[] =
>> { T_DIRECT, SIP_MEDIA_FIXED, "", "Samsung SSD 850", "" },
>> /quirks/ADA_Q_4K | ADA_Q_NCQ_TRIM_BROKEN
>> },
>> + {
>> + /
>> + * Samsung 860 SSDs
>> + * 4k optimised, NCQ TRIM broken (normal TRIM fine)
>> + /
>> + { T_DIRECT, SIP_MEDIA_FIXED, "", "Samsung SSD 860*", "" },
>> + /quirks/ADA_Q_4K | ADA_Q_NCQ_TRIM_BROKEN
>> + },
>> + {
>> + /
>> + * Samsung 870 SSDs
>> + * 4k optimised, NCQ TRIM broken (normal TRIM fine)
>> + /
>> + { T_DIRECT, SIP_MEDIA_FIXED, "", "Samsung SSD 870*", "" },
>> + /quirks/ADA_Q_4K | ADA_Q_NCQ_TRIM_BROKEN
>> + },
>> {
>> /
>> * Samsung SM863 Series SSDs (MZ7KM*)

-- 
Andriy Gapon