Re: bcache: Fix a writeback performance regression

From: Kent Overstreet
Date: Mon Aug 19 2013 - 18:27:16 EST


On Mon, Aug 19, 2013 at 12:09:24AM +0200, Stefan Priebe wrote:
>
> Vanilla 3.10.7 + bcache: Fix a writeback performance regression
>
> http://pastebin.com/raw.php?i=LXZk4cMH

Whoops, at first I thought this was the same bug as one I'd already been
chasing down that had been a harmless bug - turns out I didn't look
closely enough at the backtrace.

What happened is background writeback is deadlocking, because for some
reason the workqueue it's running out of is a singlethreaded workqueue,
so as soon as it decides to queue enough writeback bios that it has to
sleep on that semaphore (which often won't happen due to the PD
controller based ratelimiting) - boom, deadlock.

Here's the fixup patch I just tested and am applying: