Messages in this thread | | | Date | Wed, 19 Mar 2008 20:54:11 -0400 | From | "Mike Snitzer" <> | Subject | Re: [ANNOUNCE] ddtree: A git kernel tree for storage servers |
| |
On Wed, Mar 19, 2008 at 8:07 PM, Mike Snitzer <snitzer@gmail.com> wrote:
> I typically use dm-linear devices built on MD (raid1 w/ one member > being remote via nbd). The per-bdi dirty writeback accounting has > proven useful but I've recently hit a nasty livelock when the bdi > accounting for a device no longer enables writeback progress to be > made, e.g: > > BdiWriteback: 0 kB > BdiReclaimable: 321408 kB > BdiDirtyThresh: 316364 kB > DirtyThresh: 381284 kB > BackgroundThresh: 190640 kB > > With an all too familiar trace like the following: > .. > [<ffffffff8044cda6>] io_schedule_timeout+0x4b/0x79 > [<ffffffff80271371>] congestion_wait+0x66/0x80 > [<ffffffff802457bd>] autoremove_wake_function+0x0/0x2e > [<ffffffff8026c64d>] balance_dirty_pages_ratelimited_nr+0x21d/0x2b1 > [<ffffffff80268191>] generic_file_buffered_write+0x5f3/0x711 > > I'm _hoping_ your simple/elegant patch can enable me to drop my 2.6.22 > per-bdi backport and all will be right with the world.
Turns out my writeback woes were actually in... writeback ;)
I had backported Fengweng Wu's writeback work from 2.6.24 to 2.6.22 with the following commits/patches:
fix time ordering of the per superblock inode lists: 6610a0bc8dcc120daa1d93807d470d5cbf777c39 9852a0e76cd9c89e71f84e784212fdd7a97ae93a f57b9b7b4f68e1723ca99381dc10c8bc07d6df14 c986d1e2a460cbce79d631c51519ae82c778c6c5 1b43ef91d40190b16ba10218e66d5c2c4ba11de3 c6945e77e477103057b4a639b4b01596f5257861 65cb9b47e0ea568a7a38cce7773052a6ea093629 670e4def6ef5f44315d62748134e535b479c784f 2c1365791048e8aff42138ed5f6040b3c7824a69
fix periodic superblock dirty inode flushing: 0e0f4fc22ece8e593167eccbb1a4154565c11faa
remove pages_skipped accounting in __block_write_full_page(): 1f7decf6d9f06dac008b8d66935c0c3b18e564f9
speed up writeback of big dirty files: http://lkml.org/lkml/2008/1/17/49
Given all but the last lkml.org patch reference went into 2.6.24 I'll revisit the impact these changes have on my writeback progress when I move to 2.6.24+.
Mike
| |