> On Mon, Feb 04, 2019 at 01:30:37PM +0100, Ulf Hansson wrote: > > Although, I am not sure why having our own mmc workqueue, would fix > > this problem. Couldn't we hit the same kind of deadlock anyways you > > think? > > Maybe I misunderstood the issue. I thought the problem was that > the one rescuer kblockd thread is executing some block submission > work item, which is blocking because it waits for something in > completion handling. > > Now with another workqueue we have two rescuer threads, one that > exectures all completions, which shouldn't depend on items in > the submission queue, and another one executing the block layer > submission, which might or might not depend on something happening > to another request in the completion workqueue. You understood the issue correctly. Having a second private workqueue should also avoid the deadlock as it avoids having claim and release tasks on the same queue. I have generated a test build with a private workqueue and it appears to be equivalent to my original patch. If this is the preferred solution, I will clean up my changes and resubmit.