linux/include/target
Mike Christie 7324f47d42 scsi: target: Replace lun_tg_pt_gp_lock with rcu in I/O path
We are only holding the lun_tg_pt_gp_lock in target_alua_state_check() to
make sure tg_pt_gp is not freed from under us while we copy the state,
delay, ID values. We can instead use RCU here to access the tg_pt_gp.

With this patch IOPs can increase up to 10% for jobs like:

  fio  --filename=/dev/sdX  --direct=1 --rw=randrw --bs=4k \
    --ioengine=libaio --iodepth=64  --numjobs=N

when there are multiple sessions (running that fio command to each /dev/sdX
or using multipath and there are over 8 paths), or more than 8 queues for
the loop or vhost with multiple threads case and numjobs > 8.

Link: https://lore.kernel.org/r/20210930020422.92578-5-michael.christie@oracle.com
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-10-18 22:38:36 -04:00
..
iscsi scsi: target: Make iscsit_register_transport() return void 2020-08-04 20:56:56 -04:00
target_core_backend.h scsi: target: Allows backend drivers to fail with specific sense codes 2021-08-17 22:28:40 -04:00
target_core_base.h scsi: target: Replace lun_tg_pt_gp_lock with rcu in I/O path 2021-10-18 22:38:36 -04:00
target_core_fabric.h scsi: target: core: Add common tpg/enable attribute 2021-10-04 23:27:38 -04:00