summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2011-12-01 03:21:24 +0100
committerNicholas Bellinger <nab@linux-iscsi.org>2011-12-14 12:50:12 +0100
commitbeb55a0cc15a43be43a646b588fcf83822f0c44f (patch)
tree4ad60fa940e13870449e70341b036e5eaa22c01c
parenttarget: Remove extra se_device->execute_task_lock access in fast path (diff)
downloadlinux-beb55a0cc15a43be43a646b588fcf83822f0c44f.tar.xz
linux-beb55a0cc15a43be43a646b588fcf83822f0c44f.zip
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: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/target/target_core_transport.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 46e25118ab25..373e01f523dd 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -4655,8 +4655,6 @@ static int transport_processing_thread(void *param)
goto out;
get_cmd:
- __transport_execute_tasks(dev, NULL);
-
cmd = transport_get_cmd_from_queue(&dev->dev_queue_obj);
if (!cmd)
continue;