Re: [PATCH 08/28] mm: system wide ALLOC_NO_WATERMARK

Andrew Morton
2008-02-23T08:08:57Z

On Wed, 20 Feb 2008 15:46:18 +0100 Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

> Change ALLOC_NO_WATERMARK page allocation such that the reserves are system
> wide - which they are per setup_per_zone_pages_min(), when we scrape the
> barrel, do it properly.
>

The changelog is fairly incomprehensible.

> mm/page_alloc.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> Index: linux-2.6/mm/page_alloc.c
> ===================================================================
> --- linux-2.6.orig/mm/page_alloc.c
> +++ linux-2.6/mm/page_alloc.c
> @@ -1552,6 +1552,12 @@ restart:
> rebalance:
> if (alloc_flags & ALLOC_NO_WATERMARKS) {
> nofail_alloc:
> + /*
> + * break out of mempolicy boundaries
> + */
> + zonelist = NODE_DATA(numa_node_id())->node_zonelists +
> + gfp_zone(gfp_mask);
> +
> /* go through the zonelist yet again, ignoring mins */
> page = get_page_from_freelist(gfp_mask, order, zonelist,
> ALLOC_NO_WATERMARKS);

As is the patch. People who care about mempolicies will want a better
explanation, please, so they can check that we're not busting their stuff.