Any comments? (and yes, I misspelled the nvme list address, but the interested parties should be on linux-block anyway) On Thu, Jun 11, 2020 at 08:44:40AM +0200, Christoph Hellwig wrote: > Hi Jens, > > Peters recent inquiry made me dust off various bits of unfinished work > around blk_mq_complete_request and massage it into a coherent series. > > This does three different things all touching the same area: > > - merge the softirq based single queue completion into the main > blk-mq completion mechanism, as there is a lot of duplicate logic > between the two > - move the error injection that just fails to complete requests out into > the drivers. The fact that blk_mq_complete_request just wouldn't > complete when called from the error handle has been causing all kinds > of pain > - optimize the fast path by allowing drivers to avoid the indirect call > with a little more work for polled or per-CPU IRQ completions. With > this a polled block device I/O only has two indirect calls let, one for > the file operation that ends up in the block device code, and another > one for disptching to the nvme driver ---end quoted text---