Re: [PATCH v2 00/84] Call scsi_done() directly
From: Bean Huo <hidden>
Date: 2021-09-30 07:25:43
Hi Bart, On Wed, 2021-09-29 at 15:04 -0700, Bart Van Assche wrote:
Hi Martin, This patch series increases IOPS by 5% on my test setup in a single- threaded test with queue depth 1 on top of the scsi_debug driver.
Here you mentioned queue depth 1. Does this mean SW queue depth? Kind regards, Bean
Please consider this patch series for kernel v5.16. Thanks, Bart. Changes compared to v1: - Inserted the SUBMITTED_BY_ prefix in front of the enumeration constants introduced in patch 1. - Reworked the fas216 patch such that the scsi_done pointer is preserved. - Moved some SCSI core changes from the start of this series to the end to improve bisectability of this series. - Added explicit initialization of the new "submitter" member variable instead of relying on implicit initialization. - Added Reviewed-by/Acked-by tags. Bart Van Assche (84): scsi: core: Use a member variable to track the SCSI command submitter scsi: core: Rename scsi_mq_done() into scsi_done() and export it ata: Call scsi_done() directly firewire: sbp2: Call scsi_done() directly ib_srp: Call scsi_done() directly message: fusion: Call scsi_done() directly zfcp_scsi: Call scsi_done() directly 3w-9xxx: Call scsi_done() directly 3w-sas: Call scsi_done() directly 3w-xxxx: Call scsi_done() directly 53c700: Call scsi_done() directly BusLogic: Call scsi_done() directly NCR5380: Call scsi_done() directly a100u2w: Call scsi_done() directly aacraid: Introduce aac_scsi_done() aacraid: Call scsi_done() directly acornscsi: Call scsi_done() directly advansys: Call scsi_done() directly aha152x: Call scsi_done() directly aha1542: Call scsi_done() directly aic7xxx: Call scsi_done() directly arcmsr: Call scsi_done() directly atp870u: Call scsi_done() directly bfa: Call scsi_done() directly bnx2fc: Call scsi_done() directly csiostor: Call scsi_done() directly cxlflash: Call scsi_done() directly dc395x: Call scsi_done() directly dpt_i2o: Call scsi_done() directly esas2r: Call scsi_done() directly esp_scsi: Call scsi_done() directly fas216: Introduce struct fas216_cmd_priv fas216: Stop using scsi_cmnd.scsi_done fdomain: Call scsi_done() directly fnic: Call scsi_done() directly hpsa: Call scsi_done() directly hptiop: Call scsi_done() directly ibmvscsi: Call scsi_done() directly imm: Call scsi_done() directly initio: Call scsi_done() directly ipr: Call scsi_done() directly ips: Call scsi_done() directly libfc: Call scsi_done() directly libiscsi: Call scsi_done() directly libsas: Call scsi_done() directly lpfc: Call scsi_done() directly mac53c94: Call scsi_done() directly megaraid: Call scsi_done() directly megaraid: Call scsi_done() directly mesh: Call scsi_done() directly mpi3mr: Call scsi_done() directly mpt3sas: Call scsi_done() directly mvumi: Call scsi_done() directly myrb: Call scsi_done() directly myrs: Call scsi_done() directly ncr53c8xx: Call scsi_done() directly nsp32: Call scsi_done() directly pcmcia: Call scsi_done() directly pmcraid: Call scsi_done() directly ppa: Call scsi_done() directly ps3rom: Call scsi_done() directly qedf: Call scsi_done() directly qla1280: Call scsi_done() directly qla2xxx: Call scsi_done() directly qla4xxx: Call scsi_done() directly qlogicfas408: Call scsi_done() directly qlogicpti: Call scsi_done() directly scsi_debug: Call scsi_done() directly smartpqi: Call scsi_done() directly snic: Call scsi_done() directly stex: Call scsi_done() directly storvsc_drv: Call scsi_done() directly sym53c8xx_2: Call scsi_done() directly ufs: Call scsi_done() directly virtio_scsi: Call scsi_done() directly vmw_pvscsi: Call scsi_done() directly wd33c93: Call scsi_done() directly wd719x: Call scsi_done() directly xen-scsifront: Call scsi_done() directly staging: rts5208: Call scsi_done() directly staging: unisys: visorhba: Call scsi_done() directly target/tcm_loop: Call scsi_done() directly usb: Call scsi_done() directly scsi: core: Call scsi_done directly drivers/ata/libata-sata.c | 2 +- drivers/ata/libata-scsi.c | 14 +-- drivers/firewire/sbp2.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 8 +- drivers/message/fusion/mptfc.c | 6 +- drivers/message/fusion/mptsas.c | 2 +- drivers/message/fusion/mptscsih.c | 10 +- drivers/message/fusion/mptspi.c | 4 +- drivers/s390/scsi/zfcp_fsf.c | 2 +- drivers/s390/scsi/zfcp_scsi.c | 4 +- drivers/scsi/3w-9xxx.c | 7 +- drivers/scsi/3w-sas.c | 7 +- drivers/scsi/3w-xxxx.c | 13 +- drivers/scsi/53c700.c | 5 +- drivers/scsi/BusLogic.c | 9 +- drivers/scsi/NCR5380.c | 12 +- drivers/scsi/a100u2w.c | 3 +- drivers/scsi/aacraid/aachba.c | 53 ++++---- drivers/scsi/advansys.c | 3 +- drivers/scsi/aha152x.c | 27 ++-- drivers/scsi/aha1542.c | 10 +- drivers/scsi/aic7xxx/aic79xx_osm.c | 3 +- drivers/scsi/aic7xxx/aic7xxx_osm.c | 3 +- drivers/scsi/arcmsr/arcmsr_hba.c | 17 ++- drivers/scsi/arm/acornscsi.c | 6 +- drivers/scsi/arm/arxescsi.c | 1 + drivers/scsi/arm/cumana_2.c | 1 + drivers/scsi/arm/eesox.c | 1 + drivers/scsi/arm/fas216.c | 8 +- drivers/scsi/arm/fas216.h | 10 ++ drivers/scsi/arm/powertec.c | 2 +- drivers/scsi/atp870u.c | 13 +- drivers/scsi/bfa/bfad_im.c | 8 +- drivers/scsi/bnx2fc/bnx2fc_io.c | 8 +- drivers/scsi/csiostor/csio_scsi.c | 8 +- drivers/scsi/cxlflash/main.c | 6 +- drivers/scsi/dc395x.c | 8 +- drivers/scsi/dpt_i2o.c | 11 +- drivers/scsi/esas2r/esas2r_main.c | 8 +- drivers/scsi/esp_scsi.c | 10 +- drivers/scsi/fdomain.c | 2 +- drivers/scsi/fnic/fnic_scsi.c | 119 ++++++++------ ---- drivers/scsi/hosts.c | 2 +- drivers/scsi/hpsa.c | 12 +- drivers/scsi/hptiop.c | 7 +- drivers/scsi/ibmvscsi/ibmvfc.c | 8 +- drivers/scsi/imm.c | 3 +- drivers/scsi/initio.c | 4 +- drivers/scsi/ipr.c | 10 +- drivers/scsi/ips.c | 28 ++--- drivers/scsi/libfc/fc_fcp.c | 6 +- drivers/scsi/libiscsi.c | 4 +- drivers/scsi/libsas/sas_scsi_host.c | 4 +- drivers/scsi/lpfc/lpfc_scsi.c | 8 +- drivers/scsi/mac53c94.c | 3 +- drivers/scsi/megaraid.c | 21 ++-- drivers/scsi/megaraid/megaraid_mbox.c | 9 +- drivers/scsi/megaraid/megaraid_sas_base.c | 16 +-- drivers/scsi/megaraid/megaraid_sas_fusion.c | 6 +- drivers/scsi/mesh.c | 16 +-- drivers/scsi/mpi3mr/mpi3mr_os.c | 26 ++-- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 18 +-- drivers/scsi/mvumi.c | 4 +- drivers/scsi/myrb.c | 32 ++--- drivers/scsi/myrs.c | 10 +- drivers/scsi/ncr53c8xx.c | 3 +- drivers/scsi/nsp32.c | 3 +- drivers/scsi/pcmcia/nsp_cs.c | 4 +- drivers/scsi/pcmcia/sym53c500_cs.c | 3 +- drivers/scsi/pmcraid.c | 11 +- drivers/scsi/ppa.c | 3 +- drivers/scsi/ps3rom.c | 5 +- drivers/scsi/qedf/qedf_io.c | 19 +-- drivers/scsi/qla1280.c | 5 +- drivers/scsi/qla2xxx/qla_os.c | 8 +- drivers/scsi/qla4xxx/ql4_os.c | 4 +- drivers/scsi/qlogicfas408.c | 3 +- drivers/scsi/qlogicpti.c | 4 +- drivers/scsi/scsi_debug.c | 8 +- drivers/scsi/scsi_error.c | 18 ++- drivers/scsi/scsi_lib.c | 16 ++- drivers/scsi/scsi_priv.h | 1 + drivers/scsi/smartpqi/smartpqi_init.c | 2 +- drivers/scsi/snic/snic_scsi.c | 33 +++-- drivers/scsi/stex.c | 6 +- drivers/scsi/storvsc_drv.c | 4 +- drivers/scsi/sym53c8xx_2/sym_glue.c | 3 +- drivers/scsi/ufs/ufshcd.c | 6 +- drivers/scsi/virtio_scsi.c | 7 +- drivers/scsi/vmw_pvscsi.c | 7 +- drivers/scsi/wd33c93.c | 14 +-- drivers/scsi/wd719x.c | 4 +- drivers/scsi/xen-scsifront.c | 4 +- drivers/staging/rts5208/rtsx.c | 5 +- .../staging/unisys/visorhba/visorhba_main.c | 14 +-- drivers/target/loopback/tcm_loop.c | 4 +- drivers/usb/storage/scsiglue.c | 1 - drivers/usb/storage/uas.c | 10 +- drivers/usb/storage/usb.c | 4 +- include/scsi/scsi_cmnd.h | 13 +- include/scsi/scsi_host.h | 2 +- 101 files changed, 452 insertions(+), 522 deletions(-)