[PATCH 04/05] mm simplify __alloc_pages cpuset hardwall logic

From: Paul Jackson (pj_at_sgi.com)
Date: 11/14/05

  • Next message: Paul Jackson: "[PATCH 03/05] mm rationalize __alloc_pages ALLOC_* flag names"
    Date:	Sun, 13 Nov 2005 20:04:04 -0800 (PST)
    To: akpm@osdl.org, linux-kernel@vger.kernel.org
    
    

    The __GFP_HARDWALL flag logic is the same in mm/page_alloc.c
    for all calls to get_page_from_freelist(). Save a couple of
    lines of source code and a few bytes of text by only computing
    it once, inside get_page_from_freelist(), instead of passing
    it in each time. The key improvement is that it reduces the
    logic in __alloc_pages() by another detail. There is now -no-
    cpuset specific confinement logic in __alloc_pages(). It is
    all more generically stated in get_page_from_freelist().

    Signed-off-by: Paul Jackson <pj@sgi.com>

    ---
     mm/page_alloc.c |    6 ++++--
     1 files changed, 4 insertions(+), 2 deletions(-)
    --- 2.6.14-mm2.orig/mm/page_alloc.c	2005-11-13 10:10:59.147820307 -0800
    +++ 2.6.14-mm2/mm/page_alloc.c	2005-11-13 10:11:02.926182092 -0800
    @@ -815,6 +815,8 @@ get_page_from_freelist(gfp_t gfp_mask, u
     	 */
     	do {
     		if (!(alloc_flags & ALLOC_MUSTHAVE)) {
    +			if (alloc_flags == ALLOC_DONT_DIP)
    +				gfp_mask |= __GFP_HARDWALL;
     			if (!cpuset_zone_allowed(*z, gfp_mask))
     				continue;
     			if (!zone_watermark_ok(*z, order, (*z)->pages_low,
    @@ -908,7 +910,7 @@ __alloc_pages(gfp_t gfp_mask, unsigned i
     		return NULL;
     	}
     restart:
    -	page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order,
    +	page = get_page_from_freelist(gfp_mask, order,
     				zonelist, ALLOC_DONT_DIP);
     	if (page)
     		goto got_pg;
    @@ -987,7 +989,7 @@ rebalance:
     		 * a parallel oom killing, we must fail if we're still
     		 * under heavy pressure.
     		 */
    -		page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order,
    +		page = get_page_from_freelist(gfp_mask, order,
     						zonelist, ALLOC_DONT_DIP);
     		if (page)
     			goto got_pg;
    -- 
                              I won't rest till it's the best ...
                              Programmer, Linux Scalability
                              Paul Jackson <pj@sgi.com> 1.650.933.1373
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Paul Jackson: "[PATCH 03/05] mm rationalize __alloc_pages ALLOC_* flag names"

    Relevant Pages