diff options
| author | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-11-30 21:21:24 -0500 |
|---|---|---|
| committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-12-14 06:50:12 -0500 |
| commit | beb55a0cc15a43be43a646b588fcf83822f0c44f (patch) | |
| tree | 4ad60fa940e13870449e70341b036e5eaa22c01c | |
| parent | 4d2300ccffd22d1d0213b6a8e4d685eb6ca069c0 (diff) | |
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.c | 2 |
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) | |||
| 4655 | goto out; | 4655 | goto out; |
| 4656 | 4656 | ||
| 4657 | get_cmd: | 4657 | get_cmd: |
| 4658 | __transport_execute_tasks(dev, NULL); | ||
| 4659 | |||
| 4660 | cmd = transport_get_cmd_from_queue(&dev->dev_queue_obj); | 4658 | cmd = transport_get_cmd_from_queue(&dev->dev_queue_obj); |
| 4661 | if (!cmd) | 4659 | if (!cmd) |
| 4662 | continue; | 4660 | continue; |
