• Keith Busch's avatar
    nvme: mask CSE effects for security receive · baff6491
    Keith Busch authored
    The nvme driver will freeze the IO queues in response to an admin
    command with CSE bits set. These bits notify the host that the command
    that's about to be executed needs to be done exclusively, hence the
    freeze.
    
    The Security Receive command is often reported by multiple vendors with
    CSE bits set. The reason for this is that the result depends on the
    previous Security Send. This has nothing to do with IO queues, though,
    so the driver is taking an overly cautious response to seeing this
    passthrough command, while unable to fufill the intended admin queue
    action.
    
    Rather than freeze IO during this harmless command, mask off the
    effects. This freezing is observed to cause IO latency spikes when host
    software periodically validates the security state of the drives.
    Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
    Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
    Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    baff6491
core.c 143 KB