]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: iscsi: Add support for asynchronous iSCSI session destruction
authorFrank Mayhar <fmayhar@google.com>
Thu, 27 Feb 2020 19:59:45 +0000 (14:59 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 12 Mar 2020 03:07:57 +0000 (23:07 -0400)
commitdafcce039434cd92d342885f4412f09053cb7750
tree2eaf6fed23b2af71f1970461eb213757de6d2a21
parent74289ab7280868ac6abe5a52e9b9fa279f8280d2
scsi: iscsi: Add support for asynchronous iSCSI session destruction

iSCSI session destruction can be arbitrarily slow, since it might require
network operations and serialization inside the SCSI layer.  This patch
adds a new user event to trigger the destruction work asynchronously,
releasing the rx_queue_mutex as soon as the operation is queued and before
it is performed.  This change allows other operations to run in other
sessions in the meantime, removing one of the major iSCSI bottlenecks for
us.

To prevent the session from being used after the destruction request, we
remove it immediately from the sesslist. This simplifies the locking
required during the asynchronous removal.

Link: https://lore.kernel.org/r/20200227195945.761719-1-krisman@collabora.com
Co-developed-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Co-developed-by: Khazhismel Kumykov <khazhy@google.com>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Signed-off-by: Frank Mayhar <fmayhar@google.com>
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_iscsi.c
include/scsi/iscsi_if.h
include/scsi/scsi_transport_iscsi.h