diff options
author | Kent Overstreet <kmo@daterainc.com> | 2013-09-23 23:17:31 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-10-05 07:13:09 -0700 |
commit | 48c4100e10b75152098675d534d8a6109b28f1bf (patch) | |
tree | d1ff65f68a6e48c6fd063229d54e74bb28cd0b57 /drivers/message | |
parent | 808eea9d2912e4a3fb8cd45e3e3da94d114757fb (diff) | |
download | linux-3.10-48c4100e10b75152098675d534d8a6109b28f1bf.tar.gz linux-3.10-48c4100e10b75152098675d534d8a6109b28f1bf.tar.bz2 linux-3.10-48c4100e10b75152098675d534d8a6109b28f1bf.zip |
bcache: Fix a writeback performance regression
commit c2a4f3183a1248f615a695fbd8905da55ad11bba upstream.
Background writeback works by scanning the btree for dirty data and
adding those keys into a fixed size buffer, then for each dirty key in
the keybuf writing it to the backing device.
When read_dirty() finishes and it's time to scan for more dirty data, we
need to wait for the outstanding writeback IO to finish - they still
take up slots in the keybuf (so that foreground writes can check for
them to avoid races) - without that wait, we'll continually rescan when
we'll be able to add at most a key or two to the keybuf, and that takes
locks that starves foreground IO. Doh.
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/message')
0 files changed, 0 insertions, 0 deletions