• Chaitanya Kulkarni's avatar
    nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a SPCC device · 89919929
    Chaitanya Kulkarni authored
    This adds a quirk for SPCC 256GB NVMe 1.3 drive which fixes timeouts and
    I/O errors due to the fact that the controller does not properly
    handle the Write Zeroes command:
    
    [ 2745.659527] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G            E 5.10.6-BET #1
    [ 2745.659528] Hardware name: System manufacturer System Product Name/PRIME X570-P, BIOS 3001 12/04/2020
    [ 2776.138874] nvme nvme1: I/O 414 QID 3 timeout, aborting
    [ 2776.138886] nvme nvme1: I/O 415 QID 3 timeout, aborting
    [ 2776.138891] nvme nvme1: I/O 416 QID 3 timeout, aborting
    [ 2776.138895] nvme nvme1: I/O 417 QID 3 timeout, aborting
    [ 2776.138912] nvme nvme1: Abort status: 0x0
    [ 2776.138921] nvme nvme1: I/O 428 QID 3 timeout, aborting
    [ 2776.138922] nvme nvme1: Abort status: 0x0
    [ 2776.138925] nvme nvme1: Abort status: 0x0
    [ 2776.138974] nvme nvme1: Abort status: 0x0
    [ 2776.138977] nvme nvme1: Abort status: 0x0
    [ 2806.346792] nvme nvme1: I/O 414 QID 3 timeout, reset controller
    [ 2806.363566] nvme nvme1: 15/0/0 default/read/poll queues
    [ 2836.554298] nvme nvme1: I/O 415 QID 3 timeout, disable controller
    [ 2836.672064] blk_update_request: I/O error, dev nvme1n1, sector 16350 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672072] blk_update_request: I/O error, dev nvme1n1, sector 16093 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672074] blk_update_request: I/O error, dev nvme1n1, sector 15836 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672076] blk_update_request: I/O error, dev nvme1n1, sector 15579 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672078] blk_update_request: I/O error, dev nvme1n1, sector 15322 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672080] blk_update_request: I/O error, dev nvme1n1, sector 15065 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672082] blk_update_request: I/O error, dev nvme1n1, sector 14808 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672083] blk_update_request: I/O error, dev nvme1n1, sector 14551 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672085] blk_update_request: I/O error, dev nvme1n1, sector 14294 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672087] blk_update_request: I/O error, dev nvme1n1, sector 14037 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    [ 2836.672121] nvme nvme1: failed to mark controller live state
    [ 2836.672123] nvme nvme1: Removing after probe failure status: -19
    [ 2836.689016] Aborting journal on device dm-0-8.
    [ 2836.689024] Buffer I/O error on dev dm-0, logical block 25198592, lost sync page write
    [ 2836.689027] JBD2: Error -5 detected when updating journal superblock for dm-0-8.
    Reported-by: default avatarBradley Chapman <chapman6235@comcast.net>
    Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Tested-by: default avatarBradley Chapman <chapman6235@comcast.net>
    Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    89919929
pci.c 85.6 KB