• Nicholas Bellinger's avatar
    target: Remove __transport_execute_tasks() for each processing context · beb55a0c
    Nicholas Bellinger authored
    This patch removes the original usage of __transport_execute_tasks() ahead
    of every transport_get_cmd_from_queue() call in transport_processing_thread().
    This helps reduce se_device->execute_task_lock contention between qla2xxx wq
    with target_submit_cmd() for READs and transport_processing_thread()
    context servicing WRITEs with full payloads for I/O submission.
    
    It also adds a __transport_execute_tasks() to kick the task queue again
    without a *se_cmd descriptor with existing queue full logic, but this may
    end up not being necessary.
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Roland Dreier <roland@purestorage.com>
    Cc: Joern Engel <joern@logfs.org>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    beb55a0c
target_core_transport.c 129 KB