Re: [PATCH] mm: disallow direct reclaim page writeback

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Chris Mason
Date: Thursday, April 15, 2010 - 6:42 am

On Thu, Apr 15, 2010 at 11:28:37AM +0100, Mel Gorman wrote:

vi fs/direct-reclaim-helper.c, it has a few placeholders for where the
real code needs to go....just look for the ~ marks.

I mostly meant that the bdi helper threads were the best place to add
knowledge about which pages we want to write for reclaim.  We might need
to add a thread dedicated to just doing the VM's dirty work, but that's
where I would start discussing fancy new interfaces.


I'd like to add one more:

5. Don't dive into filesystem locks during reclaim.

This is different from splicing code paths together, but
the filesystem writepage code has become the center of our attempts at
doing big fat contiguous writes on disk.  We push off work as late as we
can until just before the pages go down to disk.

I'll pick on ext4 and btrfs for a minute, just to broaden the scope
outside of XFS.  Writepage comes along and the filesystem needs to
actually find blocks on disk for all the dirty pages it has promised to
write.

So, we start a transaction, we take various allocator locks, modify
different metadata, log changed blocks, take a break (logging is hard
work you know, need_resched() triggered a by now), stuff it
all into the file's metadata, log that, and finally return.

Each of the steps above can block for a long time.  Ext4 solves
this by not doing them.  ext4_writepage only writes pages that
are already fully allocated on disk.

Btrfs is much more efficient at not doing them, it just returns right
away for PF_MEMALLOC.

This is a long way of saying the filesystem writepage code is the
opposite of what direct reclaim wants.  Direct reclaim wants to
find free ram now, and if it does end up in the mess describe above,
it'll just get stuck for a long time on work entirely unrelated to
finding free pages.

-chris

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

Messages in current thread:
[PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Mon Apr 12, 5:17 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 1:31 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 3:29 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 4:19 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 4:39 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 7:36 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Mel Gorman, (Tue Apr 13, 12:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Tue Apr 13, 1:20 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Tue Apr 13, 5:24 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 6:40 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 8:12 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 9:44 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Tue Apr 13, 9:59 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 10:41 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 10:54 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Tue Apr 13, 11:13 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:06 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 12:19 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:28 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:36 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 12:54 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Wed Apr 14, 2:42 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 3:01 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 3:16 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Wed Apr 14, 4:20 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Wed Apr 14, 7:07 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 6:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 6:56 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Johannes Weiner, (Wed Apr 14, 7:37 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 7:43 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 9:09 pm)
[PATCH 2/4] vmscan: kill prev_priority completely, KOSAKI Motohiro, (Wed Apr 14, 9:13 pm)
[PATCH 3/4] vmscan: move priority variable into scan_control, KOSAKI Motohiro, (Wed Apr 14, 9:14 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 9:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:20 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:58 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 15, 1:54 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Thu Apr 15, 3:21 am)
[PATCH 1/4] vmscan: simplify shrink_inactive_list(), KOSAKI Motohiro, (Thu Apr 15, 3:23 am)
[PATCH 2/4] [cleanup] mm: introduce free_pages_prepare, KOSAKI Motohiro, (Thu Apr 15, 3:24 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Thu Apr 15, 6:42 am)
Re: [PATCH 3/4] mm: introduce free_pages_bulk, Mel Gorman, (Thu Apr 15, 6:46 am)
Re: [PATCH 1/4] vmscan: delegate pageout io to flusher thr ..., Suleiman Souhlal, (Thu Apr 15, 10:24 am)
Re: [PATCH 1/4] vmscan: delegate pageout io to flusher thr ..., Suleiman Souhlal, (Thu Apr 15, 10:27 am)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Valdis.Kletnieks, (Thu Apr 15, 11:22 am)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Dave Chinner, (Thu Apr 15, 4:40 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Thu Apr 15, 6:13 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 15, 9:14 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Thu Apr 15, 9:18 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Johannes Weiner, (Fri Apr 16, 4:56 pm)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Dave Chinner, (Fri Apr 16, 7:37 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Andrew Morton, (Sat Apr 17, 5:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Andrew Morton, (Sun Apr 18, 9:31 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Christoph Hellwig, (Sun Apr 18, 12:05 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 12:10 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 12:11 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Christoph Hellwig, (Sun Apr 18, 12:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 4:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Sun Apr 18, 5:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Arjan van de Ven, (Sun Apr 18, 5:49 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Sun Apr 18, 6:08 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Arjan van de Ven, (Sun Apr 18, 9:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 22, 6:06 pm)