Re: [PATCH 04/10] mm: slub: add knowledge of reserve pages

Andrew Morton
2007-08-08T17:46:34Z

On Wed, 8 Aug 2007 10:13:05 -0700 (PDT)
Christoph Lameter <clameter@sgi.com> wrote:

> I think there are two ways to address this in a simpler way:
>
> 1. Allow recursive calls into reclaim. If we are in a PF_MEMALLOC context
> then we can still scan lru lists and free up memory of clean pages. Idea
> patch follows.
>
> 2. Make pageout figure out if the write action requires actual I/O
> submission. If so then the submission will *not* immediately free memory
> and we have to wait for I/O to complete. In that case do not immediately
> initiate I/O (which would not free up memory and its bad to initiate
> I/O when we have not enough free memory) but put all those pages on a
> pageout list. When reclaim has reclaimed enough memory then go through the
> pageout list and trigger I/O. That can be done without PF_MEMALLOC so that
> additional reclaim could be triggered as needed. Maybe we can just get rid
> of PF_MEMALLOC and some of the contorted code around it?

3. Perform page reclaim from hard IRQ context. Pretty simple to
implement, most of the work would be needed in the rmap code. It might be
better to make it opt-in via a new __GFP_flag.