35e0e75753
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> |
||
---|---|---|
.. | ||
configfs_macros.h | ||
target_core_base.h | ||
target_core_configfs.h | ||
target_core_device.h | ||
target_core_fabric_configfs.h | ||
target_core_fabric_lib.h | ||
target_core_fabric_ops.h | ||
target_core_tmr.h | ||
target_core_tpg.h | ||
target_core_transport.h |