Re: [PATCH 5 of 5] xen: Avoid allocations causing swap activity onthe resume path

From: Andrew Morton
Date: Sat May 31 2008 - 06:00:48 EST


On Sat, 31 May 2008 10:50:40 +0100 Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

> Does __GFP_HIGH necessarily mean that it won't try to
> do IO to push pages out?

Nope.

__GFP_FS: may enter filesystems
__GFP_IO: may perform IO

__GFP_IO also means "may do swapout". Even when swap is on a regular
file. This is because we do all the fs-related operations up-front
during swapon. So at alloc_pages()-time we can go direct-to-disk-blocks.

So I assume for this application you'll need GFP_NOIO. That's still
heaps better than GFP_ATOMIC, because it can sleep and wait for kswapd
to do stuff, and it can reclaim clean pagecache and clean swapcache.

Whether you should also add __GFP_HIGH to cause the page allocation to
bite harder into the page reserves is unclear to me, sorry.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/