On Mon, Feb 04, 2019 at 07:24:43AM +0100, Ulf Hansson wrote: > > The above results in multiple hung tasks that lead to failures to boot. > > > > Switching complete_work to the system_highpri queue avoids this > > because system_highpri is not flagged with WQ_MEM_RECLAIM. This allows > > the host to be released without getting blocked by other claims tasks. > > > > Thanks for fix and the detailed description to the problem! I don't think this is correct, though. If you think of the swap (or memory reclaim of file backed pages) case on mmc, completing a mmc request can very much be critical for completing that memory reclaim. Thus we absolutely do need a WQ_MEM_RECLAIM workqueue. You probably want to create a private WQ_MEM_RECLAIM workqueue in the mmc code for that.