OSDN Git Service

scsi: core: Refine how we set tag_set NUMA node
authorJohn Garry <john.garry@huawei.com>
Wed, 30 Mar 2022 11:38:35 +0000 (19:38 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 26 Apr 2022 12:10:35 +0000 (08:10 -0400)
commit973dac8a8a14a7fcfd4fa0b682851f415eb91b04
tree6a8b54547a460dc3e9c8285984dbe4c2f6e6c2ea
parenta346f28ad231cb6746109219a1a371d7de11d67c
scsi: core: Refine how we set tag_set NUMA node

For SCSI hosts which enable host_tagset the NUMA node returned from
blk_mq_hw_queue_to_node() is NUMA_NO_NODE always. Then, since in
scsi_mq_setup_tags() the default we choose for the tag_set NUMA node is
NUMA_NO_NODE, we always evaluate the NUMA node as NUMA_NO_NODE in functions
like blk_mq_alloc_rq_map().

The reason we get NUMA_NO_NODE from blk_mq_hw_queue_to_node() is that the
hctx_idx passed is BLK_MQ_NO_HCTX_IDX - so we can't match against a (HW)
queue mapping index.

Improve this by defaulting the tag_set NUMA node to the same NUMA node of
the SCSI host DMA dev.

Link: https://lore.kernel.org/r/1648640315-21419-1-git-send-email-john.garry@huawei.com
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hosts.c
drivers/scsi/scsi_lib.c