Commit beb55a0c authored by Nicholas Bellinger's avatar Nicholas Bellinger

target: Remove __transport_execute_tasks() for each processing context

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>
parent 4d2300cc
...@@ -4655,8 +4655,6 @@ static int transport_processing_thread(void *param) ...@@ -4655,8 +4655,6 @@ static int transport_processing_thread(void *param)
goto out; goto out;
get_cmd: get_cmd:
__transport_execute_tasks(dev, NULL);
cmd = transport_get_cmd_from_queue(&dev->dev_queue_obj); cmd = transport_get_cmd_from_queue(&dev->dev_queue_obj);
if (!cmd) if (!cmd)
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment