Re: [PATCHSET v3 0/16] blk-mq: Add support for multiple queue maps
From: Keith Busch
Date: Tue Oct 30 2018 - 14:38:03 EST
On Tue, Oct 30, 2018 at 12:32:36PM -0600, Jens Axboe wrote:
> This series adds support for multiple queue maps for blk-mq.
> Since blk-mq was introduced, it's only support a single queue
> map. This means you can have 1 set of queues, and the mapping
> purely depends on what CPU an IO originated from. With this
> patch set, drivers can implement mappings that depend on both
> CPU and request type - and they can have multiple sets of mappings.
>
> NVMe is used as a proof of concept. It adds support for a separate
> write queue set. One way to use this would be to limit the number
> of write queues to favor reads, since NVMe does round-robin service
> of queues. An easy extension of this would be to add multiple
> sets of queues, for prioritized IO.
>
> NVMe also uses this feature to finally make the polling work
> efficiently, without triggering interrupts. This both increases
> performance (and decreases latency), at a lower system load. At
> the same time it's more flexible, as you don't have to worry about
> IRQ coalescing and redirection to avoid interrupts disturbing the
> workload. This is how polling should have worked from day 1.
>
> This is on top of my mq-conversions branch. It can also be bound
> in my mq-maps branch.
Looks good to me. For the series:
Reviewed-by: Keith Busch <keith.busch@xxxxxxxxx>