Re: [PATCH 0/5] [RFC] transfer ASYNC vmscan writeback IO to the flusher threads

Dave Chinner
2010-07-29T23:23:30Z

On Thu, Jul 29, 2010 at 07:51:42PM +0800, Wu Fengguang wrote:
> Andrew,
>
> It's possible to transfer ASYNC vmscan writeback IOs to the flusher threads.
> This simple patchset shows the basic idea. Since it's a big behavior change,
> there are inevitably lots of details to sort out. I don't know where it will
> go after tests and discussions, so the patches are intentionally kept simple.
>
> sync livelock avoidance (need more to be complete, but this is minimal required for the last two patches)
> [PATCH 1/5] writeback: introduce wbc.for_sync to cover the two sync stages
> [PATCH 2/5] writeback: stop periodic/background work on seeing sync works
> [PATCH 3/5] writeback: prevent sync livelock with the sync_after timestamp
>
> let the flusher threads do ASYNC writeback for pageout()
> [PATCH 4/5] writeback: introduce bdi_start_inode_writeback()
> [PATCH 5/5] vmscan: transfer async file writeback to the flusher

I really do not like this - all it does is transfer random page writeback
from vmscan to the flusher threads rather than avoiding random page
writeback altogether. Random page writeback is nasty - just say no.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com