[External] : Re: [bug-report] 5-9% FIO randomwrite ext4 perf regression on 6.12.y kernel
Saeed Mirzamohammadi
saeed.mirzamohammadi at oracle.com
Mon Nov 25 10:28:35 PST 2024
> On Nov 22, 2024, at 1:09 PM, Keith Busch <kbusch at kernel.org> wrote:
>
> On Fri, Nov 22, 2024 at 06:26:46PM +0000, Saeed Mirzamohammadi wrote:
>> FYI, Tried disabling write zeros but still getting the same errors:
>> [ 326.097275] operation not supported error, dev nvme2n1, sector 10624 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
>> [ 338.496217] nvme0n1: Dataset Management(0x9) @ LBA 10928, 256 blocks, Invalid Command Opcode (sct 0x0 / sc 0x1) DNR
>> ...
>>
>> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
>> index d3bde17c818d5..ad2ce6008062e 100644
>> --- a/drivers/nvme/host/pci.c
>> +++ b/drivers/nvme/host/pci.c
>> @@ -3425,7 +3425,8 @@ static const struct pci_device_id nvme_id_table[] = {
>> .driver_data = NVME_QUIRK_STRIPE_SIZE |
>> NVME_QUIRK_DEALLOCATE_ZEROES |
>> NVME_QUIRK_IGNORE_DEV_SUBNQN |
>> - NVME_QUIRK_BOGUS_NID, },
>> + NVME_QUIRK_BOGUS_NID |
>> + NVME_QUIRK_DISABLE_WRITE_ZEROES, },
>> { PCI_VDEVICE(INTEL, 0x0a55), /* Dell Express Flash P4600 */
>> .driver_data = NVME_QUIRK_STRIPE_SIZE |
>> NVME_QUIRK_DEALLOCATE_ZEROES, },
>
> Could you instead try deleting the NVME_QUIRK_DEALLOCATE_ZEROES quirk
> for this device? The driver apparently uses this to assume you meant to
> do a Discard, but it sounds like the device wants an actual Write Zeroes
> command here.
Deleting the NVME_QUIRK_DEALLOCATE_ZEROES recovers the performance.
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index d3bde17c818d5..09f6fce2fec54 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -3423,7 +3423,6 @@ static const struct pci_device_id nvme_id_table[] = {
NVME_QUIRK_DEALLOCATE_ZEROES, },
{ PCI_VDEVICE(INTEL, 0x0a54), /* Intel P4500/P4600 */
.driver_data = NVME_QUIRK_STRIPE_SIZE |
- NVME_QUIRK_DEALLOCATE_ZEROES |
NVME_QUIRK_IGNORE_DEV_SUBNQN |
NVME_QUIRK_BOGUS_NID, },
{ PCI_VDEVICE(INTEL, 0x0a55), /* Dell Express Flash P4600 */
More information about the Linux-nvme
mailing list