On Mon, 2018-10-29 at 14:09 -0600, Jens Axboe wrote: > hctx->type will be set to the value of the first type. This is all driver > private, blk-mq could not care less what the value of the type means. > > As to the other question, it works just fine since that is the queue > that is being accessed. There's no confusion there. I think you're > misunderstanding how it's seutp. To use nvme as the example, type 0 > would be reads, 1 writes, and 2 pollable queues. If reads and writes > share the same set of hardware queues, then type 1 simply doesn't > exist in terms of ->flags_to_type() return value. This is purely > driven by the driver. That hook is the only decider of where something > will go. If we share hctx sets, we share the same hardware queue as > well. There is just the one set for that case.
How about adding a comment in blk-mq.h that explains that hardware queues can be shared among different hardware queue types? I think this is nontrivial and deserves a comment. Thanks, Bart.