linux/drivers/scsi/elx/efct
Mike Christie 194605d45d scsi: target: Have drivers report if they support direct submissions
In some cases, like with multiple LUN targets or where the target has to
respond to transport level requests from the receiving context it can be
better to defer cmd submission to a helper thread. If the backend driver
blocks on something like request/tag allocation it can block the entire
target submission path and other LUs and transport IO on that session.

In other cases like single LUN targets with storage that can support all
the commands that the target can queue, then it's best to submit the cmd
to the backend from the target's cmd receiving context.

Subsequent commits will allow the user to config what they prefer, but
drivers like loop can't directly submit because they can be called from a
context that can't sleep. And, drivers like vhost-scsi can support direct
submission, but need to keep their default behavior of deferring execution
to avoid possible regressions where the backend can block.

Make the drivers tell LIO core if they support direct submissions and their
current default, so we can prevent users from misconfiguring the system and
initialize devices correctly.

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Link: https://lore.kernel.org/r/20230928020907.5730-2-michael.christie@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-10-13 15:53:57 -04:00
..
efct_driver.c scsi: efct: Fix possible memleak in efct_device_init() 2022-11-25 23:50:35 +00:00
efct_driver.h isystem: trim/fixup stdarg.h and other headers 2021-08-19 09:02:55 +09:00
efct_hw_queues.c scsi: elx: efct: Hardware queue creation and deletion 2021-06-15 23:39:31 -04:00
efct_hw.c scsi: elx: efct: Remove redundant memset() statement 2022-05-19 20:16:26 -04:00
efct_hw.h scsi: elx: efct: Fix link error for _bad_cmpxchg 2021-06-18 23:01:04 -04:00
efct_io.c scsi: elx: efct: Remove unnecessary memset() in efct_io() 2022-04-25 23:28:25 -04:00
efct_io.h scsi: elx: efct: Hardware queues processing 2021-06-15 23:39:31 -04:00
efct_lio.c scsi: target: Have drivers report if they support direct submissions 2023-10-13 15:53:57 -04:00
efct_lio.h scsi: elx: efct: LIO backend interface routines 2021-06-15 23:39:32 -04:00
efct_scsi.c Merge branch '5.15/scsi-fixes' into 5.16/scsi-staging 2021-10-12 11:58:12 -04:00
efct_scsi.h scsi: elx: efct: SCSI I/O handling routines 2021-06-15 23:39:32 -04:00
efct_unsol.c scsi: elx: efct: Remove redundant initialization of variable lun 2021-06-18 23:01:03 -04:00
efct_unsol.h scsi: elx: efct: Unsolicited FC frame processing routines 2021-06-15 23:39:32 -04:00
efct_xport.c scsi: elx: efct: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
efct_xport.h