• Jens Axboe's avatar
    nvme: utilize two queue maps, one for reads and one for writes · 3b6592f7
    Jens Axboe authored
    NVMe does round-robin between queues by default, which means that
    sharing a queue map for both reads and writes can be problematic
    in terms of read servicing. It's much easier to flood the queue
    with writes and reduce the read servicing.
    
    Implement two queue maps, one for reads and one for writes. The
    write queue count is configurable through the 'write_queues'
    parameter.
    
    By default, we retain the previous behavior of having a single
    queue set, shared between reads and writes. Setting 'write_queues'
    to a non-zero value will create two queue sets, one for reads and
    one for writes, the latter using the configurable number of
    queues (hardware queue counts permitting).
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Reviewed-by: default avatarKeith Busch <keith.busch@intel.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    3b6592f7
pci.c 73.2 KB