Re: [PATCH 11/12] vmscan: Write out dirty pages in batch

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Nick Piggin
Date: Tuesday, June 15, 2010 - 3:55 am

On Tue, Jun 15, 2010 at 02:28:22PM +0400, Evgeniy Polyakov wrote:

The solution is not to sort pages on their way to be submitted either,
really.

What I do in fsblock is to maintain a block-nr sorted tree of dirty
blocks. This works nicely because fsblock dirty state is properly
synchronized with page dirty state. So writeout can just walk this in
order and it provides pretty optimal submission pattern of any
interleavings of data and metadata. No need for buffer boundary or
hacks like that. (needs some intelligence for delalloc, though).

But even with all that, it's not the complete story. It doesn't know
about direct IO, sync IO, or fsyncs, and it would be very hard and
ugly to try to synchronise and sort all that from the pagecache level.
It also is a heuristic in terms of optimal block scheduling behaviour.
With smarter devices and drivers there might be better ways to go.

So what is needed is to get as much info into the block layer as
possible. As Andrew says, there shouldn't be such a big difference
between pages being writeback or dirty in pagecache.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 05/12] vmscan: kill prev_priority completely, Mel Gorman, (Mon Jun 14, 4:17 am)
[PATCH 11/12] vmscan: Write out dirty pages in batch, Mel Gorman, (Mon Jun 14, 4:17 am)
Re: [PATCH 0/12] Avoid overflowing of stack during page re ..., Christoph Hellwig, (Mon Jun 14, 8:10 am)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, Rik van Riel, (Mon Jun 14, 11:04 am)
Re: [PATCH 06/12] vmscan: simplify shrink_inactive_list(), Rik van Riel, (Mon Jun 14, 11:06 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Andrew Morton, (Mon Jun 14, 4:21 pm)
Re: [PATCH 0/12] Avoid overflowing of stack during page re ..., KAMEZAWA Hiroyuki, (Mon Jun 14, 5:08 pm)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Andrew Morton, (Mon Jun 14, 6:39 pm)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Andrew Morton, (Mon Jun 14, 6:45 pm)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Andrew Morton, (Mon Jun 14, 9:15 pm)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Andrew Morton, (Mon Jun 14, 9:37 pm)
[patch] mm: vmscan fix mapping use after free, Nick Piggin, (Mon Jun 14, 10:43 pm)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Dave Chinner, (Mon Jun 14, 11:36 pm)
Re: [PATCH 08/12] vmscan: Setup pagevec as late as possibl ..., Christoph Hellwig, (Tue Jun 15, 3:47 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Christoph Hellwig, (Tue Jun 15, 3:53 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Nick Piggin, (Tue Jun 15, 3:55 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Christoph Hellwig, (Tue Jun 15, 3:57 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Christoph Hellwig, (Tue Jun 15, 4:01 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Christoph Hellwig, (Tue Jun 15, 4:08 am)
Re: [PATCH 11/12] vmscan: Write out dirty pages in batch, Christoph Hellwig, (Tue Jun 15, 4:10 am)
Re: [patch] mm: vmscan fix mapping use after free, Mel Gorman, (Tue Jun 15, 6:23 am)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, Andrew Morton, (Wed Jun 16, 4:37 pm)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, Rik van Riel, (Wed Jun 16, 4:45 pm)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, Andrew Morton, (Wed Jun 16, 5:18 pm)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, Rik van Riel, (Wed Jun 16, 5:34 pm)
Re: [PATCH 05/12] vmscan: kill prev_priority completely, KOSAKI Motohiro, (Fri Jun 25, 1:29 am)