lkml.org 
[lkml]   [2021]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.10 25/25] nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a SPCC device
    Date
    From: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

    [ Upstream commit 899199292b14b7c735808a37517de4dd2160c300 ]

    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: Bradley Chapman <chapman6235@comcast.net>
    Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Tested-by: Bradley Chapman <chapman6235@comcast.net>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 77f615568194d..a4b169408bbf0 100644
    --- a/drivers/nvme/host/pci.c
    +++ b/drivers/nvme/host/pci.c
    @@ -3248,6 +3248,8 @@ static const struct pci_device_id nvme_id_table[] = {
    .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
    { PCI_DEVICE(0x15b7, 0x2001), /* Sandisk Skyhawk */
    .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
    + { PCI_DEVICE(0x1d97, 0x2263), /* SPCC */
    + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
    { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
    .driver_data = NVME_QUIRK_SINGLE_VECTOR },
    { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
    --
    2.27.0
    \
     
     \ /
      Last update: 2021-02-02 16:57    [W:3.608 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site