From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> This updated -v3 series for v3.12-rc1 adds support for login multi-plexing, that allows subsequent login request/request PDUs beyond the initial exchange to be pushed off to workqueue process context, so that other incoming login requests can be serviced in parallel. This addresses a long-standing issue with login latency with many (100's) of parallel login requests to the same network portal being shared across many (100's) of TargetName+TargetPortalGroup endpoints. Note that login negotiation to the same TargetName+TargetPortalGroup endpoint is still sychronized in order to enforce session reinstatement state machines. The changes for -v3 include: - Convert iscsi_portal_group->np_login_lock to ->np_login_sem - Add new LOGIN_FLAGS_* definitions - Convert iscsi_target_sk_data_ready() lock access to write[lock,unlock]_bh() - Only clear LOGIN_FLAGS_READ_ACTIVE when iscsi_target_do_login() returns zero - Add LOGIN_FLAGS_READY + LOGIN_FLAGS_CLOSED bit checks to iscsi_target_sk_data_ready() - Make INIT_DELAYED_WORK() + iscsi_target_set_sock_callbacks() setup happen earlier by moving from iscsi_target_start_negotiation() into iscsi_target_locate_portal() - Set LOGIN_FLAGS_READY bit in iscsi_target_start_negotiation() after iscsi_target_do_login() returns zero. - Add sk->sk_state_change to cleanup after TCP failure - Add explicit sk_state_check to iscsi_target_do_login() - Use sk->sk_sndtimeo -> sk->sk_rcvtimeo settings during login - Drop unnecessary LOGIN_FLAGS_READ_ACTIVE bit set in isert_rx_login_req() This is the final series ahead of the initial v3.12-rc1 merge. Thank you, --nab Nicholas Bellinger (5): iscsi-target: Prepare login code for multi-plexing support iscsi-target: Add login negotiation multi-plexing support iscsi-target: Add sk->sk_state_change to cleanup after TCP failure iscsi-target: Remove left-over iscsi_target_do_login_io iser-target: Updates for login negotiation multi-plexing support drivers/infiniband/ulp/isert/ib_isert.c | 14 ++- drivers/target/iscsi/iscsi_target.c | 55 +++--- drivers/target/iscsi/iscsi_target.h | 6 +- drivers/target/iscsi/iscsi_target_core.h | 18 ++- drivers/target/iscsi/iscsi_target_login.c | 162 ++++++++------ drivers/target/iscsi/iscsi_target_login.h | 3 + drivers/target/iscsi/iscsi_target_nego.c | 335 +++++++++++++++++++++++++++- drivers/target/iscsi/iscsi_target_tpg.c | 25 ++- drivers/target/iscsi/iscsi_target_tpg.h | 4 +- 9 files changed, 500 insertions(+), 122 deletions(-) -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html