linux-stable/drivers/target
Mike Christie eb44ce8c8c scsi: target: core: Add workqueue based cmd submission
loop and vhost/scsi do their target cmd submission from driver
workqueues. This allows them to avoid an issue where the backend may block
waiting for resources like tags/requests, mem/locks, etc and that ends up
blocking their entire submission path and for the case of vhost-scsi both
the submission and completion path.

This patch adds a helper drivers can use to submit from a LIO workqueue.
This code will then be extended in the next patches to fix the plugging of
backend devices.

We are only converting vhost/loop initially, but the workqueue based
submission will work for other drivers and have similar benefits where the
main target loops will not end up blocking one some backend resource.

Link: https://lore.kernel.org/r/20210227170006.5077-17-michael.christie@oracle.com
Tested-by: Laurence Oberman <loberman@redhat.com>
Reviewed-by: Bodo Stroesser <bostroesser@gmail.com>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-03-04 17:37:02 -05:00
..
iscsi scsi: target: core: Add gfp_t arg to target_cmd_init_cdb() 2021-03-04 17:37:02 -05:00
loopback scsi: target: core: Add gfp_t arg to target_cmd_init_cdb() 2021-03-04 17:37:02 -05:00
sbp scsi: target: sbp_target: Convert to new submission API 2021-03-04 17:37:01 -05:00
tcm_fc scsi: target: core: Add gfp_t arg to target_cmd_init_cdb() 2021-03-04 17:37:02 -05:00
Kconfig
Makefile
target_core_alua.c scsi: target: alua: Remove in_interrupt() usage in core_alua_check_nonop_delay() 2021-01-22 20:25:25 -05:00
target_core_alua.h
target_core_configfs.c scsi: target: tcmu: Make pgr_support and alua_support attributes writable 2020-05-07 22:39:22 -04:00
target_core_device.c scsi: target: core: Add workqueue based cmd submission 2021-03-04 17:37:02 -05:00
target_core_fabric_configfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
target_core_fabric_lib.c scsi: target: Handle short iSIDs 2020-07-08 00:14:34 -04:00
target_core_file.c SCSI misc on 20210219 2021-02-22 10:24:58 -08:00
target_core_file.h
target_core_hba.c
target_core_iblock.c block: Add bio_max_segs 2021-02-26 15:49:51 -07:00
target_core_iblock.h
target_core_internal.h scsi: target: core: Add workqueue based cmd submission 2021-03-04 17:37:02 -05:00
target_core_pr.c scsi: target: core: Prevent underflow for service actions 2021-02-22 22:21:29 -05:00
target_core_pr.h
target_core_pscsi.c block: Add bio_max_segs 2021-02-26 15:49:51 -07:00
target_core_pscsi.h
target_core_rd.c scsi: target: rd: Drop double zeroing 2020-10-07 23:50:03 -04:00
target_core_rd.h
target_core_sbc.c scsi: target: Return COMPARE AND WRITE miscompare offsets 2020-11-04 22:02:43 -05:00
target_core_spc.c scsi: target: use an enum to track emulate_ua_intlck_ctrl 2020-02-21 17:37:16 -05:00
target_core_stat.c
target_core_tmr.c scsi: target: Make state_list per CPU 2020-11-04 22:39:38 -05:00
target_core_tpg.c scsi: target: Drop sess_cmd_lock from I/O path 2020-11-04 22:39:37 -05:00
target_core_transport.c scsi: target: core: Add workqueue based cmd submission 2021-03-04 17:37:02 -05:00
target_core_ua.c scsi: target: use an enum to track emulate_ua_intlck_ctrl 2020-02-21 17:37:16 -05:00
target_core_ua.h
target_core_user.c scsi: target: tcmu: Fix memory leak caused by wrong uio usage 2021-02-22 22:35:21 -05:00
target_core_xcopy.c scsi: target: core: Add gfp_t arg to target_cmd_init_cdb() 2021-03-04 17:37:02 -05:00
target_core_xcopy.h scsi: target: Fix XCOPY NAA identifier lookup 2021-01-11 17:06:48 -05:00