linux_dsm_epyc7002/drivers/dma/idxd
Dave Jiang 0d5c10b4c8 dmaengine: idxd: add work queue drain support
Add wq drain support. When a wq is being released, it needs to wait for
all in-flight operation to complete.  A device control function
idxd_wq_drain() has been added to facilitate this. A wq drain call
is added to the char dev on release to make sure all user operations are
complete. A wq drain is also added before the wq is being disabled.

A drain command can take an unpredictable period of time. Interrupt support
for device commands is added to allow waiting on the command to
finish. If a previous command is in progress, the new submitter can block
until the current command is finished before proceeding. The interrupt
based submission will submit the command and then wait until a command
completion interrupt happens to complete. All commands are moved to the
interrupt based command submission except for the device reset during
probe, which will be polled.

Fixes: 42d279f913 ("dmaengine: idxd: add char driver to expose submission portal to userland")
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/r/159319502515.69593.13451647706946040301.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-07-13 14:48:02 +05:30
..
cdev.c dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30
device.c dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30
dma.c dmaengine: cookie bypass for out of order completion 2020-06-17 19:45:14 +05:30
idxd.h dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30
init.c dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30
irq.c dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30
Makefile dmaengine: idxd: add char driver to expose submission portal to userland 2020-01-24 11:18:45 +05:30
registers.h dmaengine: idxd: add configuration component of driver 2020-01-24 11:18:45 +05:30
submit.c dmaengine: idxd: move submission to sbitmap_queue 2020-06-24 12:55:09 +05:30
sysfs.c dmaengine: idxd: add work queue drain support 2020-07-13 14:48:02 +05:30