linux/include/target
Christoph Hellwig 35e0e75753 target: use a workqueue for I/O completions
Instead of abusing the target processing thread for offloading I/O
completion in the backends to user context add a new workqueue.  This means
completions can be processed as fast as available CPU time allows it,
including in parallel with other completions and more importantly I/O
submission or QUEUE FULL retries.  This should give much better performance
especially on loaded systems.

As a fallout we can merge all the completed states into a single
one.

On the downside this change complicates lun reset handling a bit by
requiring us to cancel a work item only for those states that have it
initialized.  The alternative would be to either always initialize the work
item to a dummy handler, or always use the same handler and do a switch on
the state. The long term solution will be a flag that says that the command
has an initialized work item, but that's only going to be useful once we
have more users.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2011-10-24 03:21:52 +00:00
..
configfs_macros.h
target_core_base.h target: use a workqueue for I/O completions 2011-10-24 03:21:52 +00:00
target_core_configfs.h [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_device.h target: Update QUEUE ALGORITHM MODIFIER control page default 2011-07-22 09:37:49 +00:00
target_core_fabric_configfs.h
target_core_fabric_lib.h
target_core_fabric_ops.h target: Make standard INQUIRY return 'not connected' for tpg_virt_lun0 2011-08-22 19:25:35 +00:00
target_core_tmr.h target: Have core_tmr_alloc_req() take an explicit GFP_xxx flag 2011-10-24 03:20:53 +00:00
target_core_tpg.h
target_core_transport.h target: stop task timers earlier 2011-10-24 03:21:44 +00:00