gentle ping.
Any suggestion are welcome.
Thanks,
Yufen
On 2021/3/25 16:42, Yufen Yu wrote:
Before commit 132147d7f620 ("scsi: megaraid_sas: Add support for
High IOPS queues"), all interrupt of megaraid_sas is managed when
smp_affinity_enable for misx_enable. The mapping between vectors and
cpus for a 128 vectors likely:
vector0 maps to cpu0
vector1 maps to cpu1
...
If cpu0 is offline, vector0 cannot handle any io.
For now, we have not pointed msix index in megasas_build_ld_nonrw_fusion().
The default value of index is '0'. So, cmd like TEST_UNIT_READY will hung
forever after cpu0 offline. We can simplely reproduce by:
echo 0 > /sys/devices/system/cpu/cpu0/online
sg_turs /dev/sda # hung
After commit 132147d7f620, low_latency_index_start is set as 1 (not sure
for all scenario), then vector 0 is not managed. Thus, io issue to vector0
can be handled by other cpus after cpu0 offline.
Nevertheless, we may also conside to set msix index rather than default 0
in megasas_build_ld_nonrw_fusion().
Signed-off-by: Yufen Yu <yuyufen@xxxxxxxxxx>
---
drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 38fc9467c625..ddc6176f12c4 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -3021,6 +3021,8 @@ static void megasas_build_ld_nonrw_fusion(struct megasas_instance *instance,
io_request->Function = MPI2_FUNCTION_SCSI_IO_REQUEST;
io_request->DevHandle = devHandle;
}
+
+ megasas_get_msix_index(instance, scmd, cmd, 1);
}
/**