Re: [PATCH 2/2] scsi: register sysfs for scsi/iscsi workqueues

From: Mike Christie
Date: Mon Jun 22 2020 - 11:40:16 EST


On 6/11/20 5:07 AM, Bob Liu wrote:
This patch enable setting cpu affinity through "cpumask" for below
scsi/iscsi workqueues, so as to get better isolation.
- scsi_wq_*
- scsi_tmf_*
- iscsi_q_xx
- iscsi_eh

Signed-off-by: Bob Liu <bob.liu@xxxxxxxxxx>
---
drivers/scsi/hosts.c | 4 ++--
drivers/scsi/libiscsi.c | 2 +-
drivers/scsi/scsi_transport_iscsi.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 1d669e4..4b9f80d 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -272,7 +272,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
if (shost->transportt->create_work_queue) {
snprintf(shost->work_q_name, sizeof(shost->work_q_name),
"scsi_wq_%d", shost->host_no);
- shost->work_q = create_singlethread_workqueue(
+ shost->work_q = create_singlethread_workqueue_noorder(
shost->work_q_name);
if (!shost->work_q) {
error = -EINVAL;

This patch seems ok for the iscsi, fc, tmf, and non transport class scan uses. We are either heavy handed with flushes or did not need ordering.

I don't know about the zfcp use though, so I cc'd the developers listed as maintainers. It looks like for zfcp we can do:

zfcp_scsi_rport_register->fc_remote_port_add->fc_remote_port_create->scsi_queue_work to scan the scsi target on the rport.

and then zfcp_scsi_rport_register can call zfcp_unit_queue_scsi_scan->
scsi_queue_work which will scan for a specific lun.

It looks ok if those are not ordered, but I would get their review to make sure.