Re: [PATCH 1/4] vmscan: delegate pageout io to flusher thread if current is kswapd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Apr 15, 2010, at 3:30 AM, Johannes Weiner wrote:

On Thu, Apr 15, 2010 at 05:26:27PM +0900, KOSAKI Motohiro wrote:

Hannes, if my remember is correct, you tried similar swap-cluster IO
long time ago. now I can't remember why we didn't merged such patch.
Do you remember anything?

Oh, quite vividly in fact :)  For a lot of swap loads the LRU order
diverged heavily from swap slot order and readaround was a waste of
time.

Of course, the patch looked good, too, but it did not match reality
that well.

I guess 'how about this patch?' won't get us as far as 'how about
those numbers/graphs of several real-life workloads?  oh and here
is the patch...'.

    Cluster writes to disk due to memory pressure.

    Write out logically adjacent pages to the one we're paging out
    so that we may get better IOs in these situations:
These pages are likely to be contiguous on disk to the one we're
    writing out, so they should get merged into a single disk IO.

    Signed-off-by: Suleiman Souhlal <suleiman@xxxxxxxxxx>

For random IO, LRU order will have nothing to do with mapping/disk order.

Right, that's why the patch writes out contiguous pages in mapping order.

If they are contiguous on disk with the original page, then writing them out as well should be essentially free (when it comes to disk time). There is
almost no waste of memory regardless of the access patterns, as far as I
can tell.

This patch is just a proof of concept and could be improved by getting help
from the filesystem/swap code to ensure that the additional pages we're
writing out really are contiguous with the original one.

-- Suleiman

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]