diff options
author | Mike Christie <michael.christie@oracle.com> | 2021-02-27 18:00:02 +0100 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2021-03-04 23:37:02 +0100 |
commit | 302990ac3b1b1a2b7b66f59a5c88038a51fbe18e (patch) | |
tree | be970c2bc90c9b7f68cc2c2217c2f5168bbdc68b /include/target/target_core_backend.h | |
parent | scsi: target: core: Cleanup cmd flag bits (diff) | |
download | linux-302990ac3b1b1a2b7b66f59a5c88038a51fbe18e.tar.xz linux-302990ac3b1b1a2b7b66f59a5c88038a51fbe18e.zip |
scsi: target: core: Fix backend plugging
target_core_iblock is plugging and unplugging on every command and this is
causing perf issues for drivers that prefer batched cmds. With recent
patches we can now take multiple cmds from a fabric driver queue and then
pass them down the backend drivers in a batch. This patch adds this support
by adding 2 callouts to the backend for plugging and unplugging the
device. Subsequent commits will add support for iblock and tcmu device
plugging.
Link: https://lore.kernel.org/r/20210227170006.5077-22-michael.christie@oracle.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>
Diffstat (limited to 'include/target/target_core_backend.h')
-rw-r--r-- | include/target/target_core_backend.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h index ce2fba49c95d..1f78b09bba55 100644 --- a/include/target/target_core_backend.h +++ b/include/target/target_core_backend.h @@ -34,6 +34,8 @@ struct target_backend_ops { int (*configure_device)(struct se_device *); void (*destroy_device)(struct se_device *); void (*free_device)(struct se_device *device); + struct se_dev_plug *(*plug_device)(struct se_device *se_dev); + void (*unplug_device)(struct se_dev_plug *se_plug); ssize_t (*set_configfs_dev_params)(struct se_device *, const char *, ssize_t); |