• Nicholas Bellinger's avatar
    iscsi-target: Add thread_set->ts_activate_sem + use common deallocate · 5ab41ca4
    Nicholas Bellinger authored
    This patch removes the iscsi_thread_set->[rx,tx]_post_start_comp that
    was originally used synchronize startup between rx and tx threads within
    a single thread_set.
    
    Instead, use a single ->ts_activate_sem in iscsi_activate_thread_set()
    to wait for both processes to awake in the RX/TX pre handlers.
    
    Also, go ahead and refactor thread_set deallocate code into a common
    iscsi_deallocate_thread_one(), and update iscsi_deallocate_thread_sets()
    and iscsi_deallocate_extra_thread_sets() use this code
    
    v3 changes:
      - Make iscsi_deallocate_thread_one defined as static (Fengguang)
    
    v2 changes:
      - Set ISCSI_THREAD_SET_ACTIVE before calling complete in
        iscsi_activate_thread_set
      - Protect ts->conn sanity checks with ->ts_state_lock in
        RX/TX pre handlers
      - Add ->ts_activate_sem to save extra context switches per
        iscsi_activate_thread_set() call.
      - Refactor thread_set shutdown into iscsi_deallocate_thread_one()
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    5ab41ca4
iscsi_target_tq.h 2.83 KB