[PATCH-v3 0/5] iscsi-target: Add support for login multi-plexing support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux