Re: [PATCH] bcache: add separate workqueue for journal_write to avoid deadlock

From: Eddie Chapman
Date: Thu Sep 27 2018 - 11:59:49 EST


On 27/09/18 16:23, Coly Li wrote:

On 9/27/18 9:45 PM, guoju wrote:
After write SSD completed, bcache schedule journal_write work to
system_wq, that is a public workqueue in system, without WQ_MEM_RECLAIM
flag. system_wq is also a bound wq, and there may be no idle kworker on
current processor. Creating a new kworker may unfortunately need to
reclaim memory first, by shrinking cache and slab used by vfs, which
depends on bcache device. That's a deadlock.

This patch create a new workqueue for journal_write with WQ_MEM_RECLAIM
flag. It's rescuer thread will work to avoid the deadlock.

Signed-off-by: guoju <fangguoju@xxxxxxxxx>

Nice catch, this fix is quite important. I will try to submit to Jens ASAP.

Thanks.

Coly Li

Once this goes into 4.19, would this be a candidate for backporting to any stable kernels, or does it only fix something introduced in this cycle?

thanks,
Eddie