On 17/01/2020 11:18, Sumit Saxena wrote:
or doing a performance test here.
Hi Hannes,
Hi Sumit,
Sorry for the delay in replying, I observed a few issues with this patchset:
1. "blk_mq_unique_tag_to_hwq(tag)" does not return MSI-x vector to
which IO submitter CPU is affined with. Due to this IO submission and
completion CPUs are different which causes performance drop for low
latency workloads.
Hi Sumit,
So the new code has:
megasas_build_ldio_fusion()
{
cmd->request_desc->SCSIIO.MSIxIndex =
blk_mq_unique_tag_to_hwq(tag);
}
So the value here is hw queue index from blk-mq point of view, and not
megaraid_sas msix index, as you alluded to.
Yes John, value filled in "cmd->request_desc->SCSIIO.MSIxIndex" is HW
queue index.
So we get 80 msix, 8 are reserved for low_latency_index_start (that's
how it seems to me), and we report other 72 as #hw queues = 72 to SCSI
midlayer.
So I think that this should be:
cmd->request_desc->SCSIIO.MSIxIndex =
blk_mq_unique_tag_to_hwq(tag) + low_latency_index_start;
Can you possibly test performance again with this local change, or would
you rather an updated patchset be sent?
Agreed, this should return correct HW queue index.
Thanks,
John