• Keith Busch's avatar
    nvme-pci: Remove two-pass completions · 324b494c
    Keith Busch authored
    Completion handling had been done in two steps: find all new completions
    under a lock, then handle those completions outside the lock. This was
    done to make the locked section as short as possible so that other
    threads using the same lock wait less time.
    
    The driver no longer shares locks during completion, and is in fact
    lockless for interrupt driven queues, so the optimization no longer
    serves its original purpose. Replace the two-pass completion queue
    handler with a single pass that completes entries immediately.
    Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
    324b494c
pci.c 80.8 KB