Re: [PATCH] nvme-pci: disable write zeros support on specific SSDs

From: Christoph Hellwig
Date: Tue Mar 15 2022 - 08:06:14 EST


On Tue, Mar 15, 2022 at 06:47:02PM +0800, Mark Hsieh wrote:
> Like commit 5611ec2b9814 ("nvme-pci: prevent SK hynix PC400 from using
> Write Zeroes command"), Micron has the same issue:
> [ 6305.633887] blk_update_request: operation not supported error, dev
> nvme0n1, sector 340812032 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
>
> So also disable Write Zeroes command on Micron.
>
> Signed-off-by: Mark Hsieh <mark_hsieh@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
> Change-Id: Ic6ebfe141702d1869490bbf210627055b5b4d80f

Please drop these strange Change-Id tags. But more importantly
something seems really broken here if the device claims to support
Write Zeroes but then doesn't claims it is not supported.

Can you see if this only happens with some I/O size? With our without
the nounmap flag? Does the device report non-MDTS command limits?

> ---
> drivers/nvme/host/pci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index a7a502a5b2b5..68745e1d7b6a 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -3245,6 +3245,8 @@ static const struct pci_device_id nvme_id_table[] = {
> .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
> { PCI_DEVICE(0x2646, 0x500d), /* Kingston OM3PDP3256B-AH 256G */
> .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
> + { PCI_DEVICE(0x1344, 0x5411), /* Micron 2450 MTFDKCD256TFK 256G */
> + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
> { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
> { PCI_DEVICE(0x2646, 0x2263), /* KINGSTON A2000 NVMe SSD */
> .driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
> --
> 2.17.1
---end quoted text---