scsi: iscsi: Register sysfs for workqueue iscsi_destroy
authorBob Liu <bob.liu@oracle.com>
Fri, 3 Jul 2020 05:16:03 +0000 (13:16 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 8 Jul 2020 04:18:51 +0000 (00:18 -0400)
Register sysfs for workqueue iscsi_destroy so that users can set CPU
affinity through "cpumask" for this workqueue to get better isolation in
cloud multi-tenant scenario.

This patch unfolded create_singlethread_workqueue(), added WQ_SYSFS and
drop __WQ_ORDERED_EXPLICIT since __WQ_ORDERED_EXPLICIT workqueue isn't
allowed to change "cpumask".

Link: https://lore.kernel.org/r/20200703051603.1473-1-bob.liu@oracle.com
Suggested-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Bob Liu <bob.liu@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_iscsi.c

index 0396116..6c6c878 100644 (file)
@@ -4765,7 +4765,9 @@ static __init int iscsi_transport_init(void)
                goto release_nls;
        }
 
-       iscsi_destroy_workq = create_singlethread_workqueue("iscsi_destroy");
+       iscsi_destroy_workq = alloc_workqueue("%s",
+                       WQ_SYSFS | __WQ_LEGACY | WQ_MEM_RECLAIM | WQ_UNBOUND,
+                       1, "iscsi_destroy");
        if (!iscsi_destroy_workq) {
                err = -ENOMEM;
                goto destroy_wq;