[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CD26086B-67EE-4A62-AABF-3068252B158A@oracle.com>
Date: Mon, 25 Nov 2024 18:28:35 +0000
From: Saeed Mirzamohammadi <saeed.mirzamohammadi@...cle.com>
To: Keith Busch <kbusch@...nel.org>
CC: Paul Webb <paul.x.webb@...cle.com>, Christoph Hellwig <hch@....de>,
Jens
Axboe <axboe@...nel.dk>, Phil Auld <pauld@...hat.com>,
Chaitanya Kulkarni
<chaitanyak@...dia.com>,
"linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>,
"linux-nvme@...ts.infradead.org"
<linux-nvme@...ts.infradead.org>,
Ramanan Govindarajan
<ramanan.govindarajan@...cle.com>,
Sagi Grimberg <sagi@...mberg.me>,
Nicky
Veitch <nicky.veitch@...cle.com>
Subject: Re: [External] : Re: [bug-report] 5-9% FIO randomwrite ext4 perf
regression on 6.12.y kernel
> On Nov 22, 2024, at 1:09 PM, Keith Busch <kbusch@...nel.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 */
Powered by blists - more mailing lists