nvme-pci: add NO APST quirk for Kioxia device
authorEnzo Matsumiya <ematsumiya@suse.de>
Sat, 6 Nov 2021 02:08:57 +0000 (23:08 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jun 2022 07:03:25 +0000 (09:03 +0200)
[ Upstream commit 5a6254d55e2a9f7919ead8580d7aa0c7a382b26a ]

This particular Kioxia device times out and aborts I/O during any load,
but it's more easily observable with discards (fstrim).

The device gets to a state that is also not possible to use
"nvme set-feature" to disable APST.
Booting with nvme_core.default_ps_max_latency=0 solves the issue.

We had a dozen or so of these devices behaving this same way in
customer environments.

Signed-off-by: Enzo Matsumiya <ematsumiya@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/core.c

index 9bc9f6d..3ef1f91 100644 (file)
@@ -2475,6 +2475,20 @@ static const struct nvme_core_quirk_entry core_quirks[] = {
                .vid = 0x14a4,
                .fr = "22301111",
                .quirks = NVME_QUIRK_SIMPLE_SUSPEND,
+       },
+       {
+               /*
+                * This Kioxia CD6-V Series / HPE PE8030 device times out and
+                * aborts I/O during any load, but more easily reproducible
+                * with discards (fstrim).
+                *
+                * The device is left in a state where it is also not possible
+                * to use "nvme set-feature" to disable APST, but booting with
+                * nvme_core.default_ps_max_latency=0 works.
+                */
+               .vid = 0x1e0f,
+               .mn = "KCD6XVUL6T40",
+               .quirks = NVME_QUIRK_NO_APST,
        }
 };