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

From: cglogic <cglogic_at_protonmail.com>
Date: Mon, 19 Feb 2024 10:47:37 UTC
Hello Andriy,

I use ZFS with autotrim enabled on Samsung 860 PRO connected to Intel AHCI SATA controller for 9 years without any issue.

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

Thank you.

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*)