Re: [PATCH 1/3] blk-mq: add an API to estimate hardware queue node

From: Jens Axboe
Date: Tue Mar 29 2016 - 12:51:37 EST

On 03/29/2016 10:47 AM, Shaohua Li wrote:
On Tue, Mar 29, 2016 at 12:24:43AM -0700, Christoph Hellwig wrote:
On Fri, Mar 25, 2016 at 02:36:30PM -0700, Shaohua Li wrote:
we allocate most data structure in device's node, but some data
structures are not for DMA and mostly used by specific cpus/node which
could diff from device's node. Allocating such hot data in device's
node doesn't make sense. Add an API to estimate hardware queue node.
This can be used before blk-mq actually establishes the mapping. This
API runs slow, but it only used in initialization time.

I think this is the wrong way around. I've got some proprotype code
that just leaves the cpu assignments to the drivers and picks it up
in blk-mq. Give me a few days to post it..

This looks weird, shouldn't the cpu assignment be determined by block
core (blk-mq) because block core decides how to use the queue?

I agree, that belongs in the blk-mq proper, the driver should just follow the rules outlined, not impose their own in this regard. It'll also help with irq affinity mappings, once we get that in.

Jens Axboe