Re: [PATCH] Prevent large file writeback starvation

From: Andrew Morton
Date: Mon Feb 06 2006 - 20:00:14 EST


David Chinner <dgc@xxxxxxx> wrote:
>
> > So to fix both these problems we need to be smarter about terminating the
> > wb_kupdate() loop. Something like "loop until no expired inodes have been
> > written".
> >
> > Wildly untested patch:
>
> Wildly untested assertion - it won't fix my case for the same reason I'm seeing
> the current code not working - we abort higher up in writeback_inodes()
> on the age check.

You mean that we're in the state

a) big-dirty-expired inode is on s_dirty

b) small-dirty-not-expired inode is on s_io

sync_sb_inodes() sees the small-dirty-not-expired inode on s_io and gives up?


In which case, yes, perhaps leaving big-dirty-expired inode on s_io is the
right thing to do. But should we be checking that it has expired before
deciding to do this? We don't want to get in a situation where continuous
overwriting of a large file causes other files on that fs to never be
written out.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/