From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sun, 13 Nov 2005 20:03:29 -0800 (PST) From: Paul Jackson Message-Id: <20051114040329.13951.39891.sendpatchset@jackhammer.engr.sgi.com> Subject: [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags Sender: owner-linux-mm@kvack.org Return-Path: To: akpm@osdl.org, linux-kernel@vger.kernel.org Cc: Nick Piggin , linux-mm@kvack.org, Simon Derr , Christoph Lameter , "Rohit, Seth" , Paul Jackson List-ID: Two changes to the setting of the ALLOC_CPUSET flag in mm/page_alloc.c:__alloc_pages() 1) A bug fix - the "ignoring mins" case should not be honoring ALLOC_CPUSET. This case of all cases, since it is handling a request that will free up more memory than is asked for (exiting tasks, e.g.) should be allowed to escape cpuset constraints when memory is tight. 2) A logic change to make it simpler. Honor cpusets even on GFP_ATOMIC (!wait) requests. With this, cpuset confinement applies to all requests except ALLOC_NO_WATERMARKS, so that in a subsequent cleanup patch, I can remove the ALLOC_CPUSET flag entirely. Since I don't know any real reason this logic has to be either way, I am choosing the path of the simplest code. Signed-off-by: Paul Jackson --- mm/page_alloc.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) --- 2.6.14-mm2.orig/mm/page_alloc.c 2005-11-12 22:25:03.305301135 -0800 +++ 2.6.14-mm2/mm/page_alloc.c 2005-11-12 22:27:30.519813285 -0800 @@ -933,8 +933,7 @@ restart: alloc_flags |= ALLOC_HARDER; if (gfp_mask & __GFP_HIGH) alloc_flags |= ALLOC_HIGH; - if (wait) - alloc_flags |= ALLOC_CPUSET; + alloc_flags |= ALLOC_CPUSET; /* * Go through the zonelist again. Let __GFP_HIGH and allocations @@ -956,7 +955,7 @@ restart: nofail_alloc: /* go through the zonelist yet again, ignoring mins */ page = get_page_from_freelist(gfp_mask, order, - zonelist, ALLOC_NO_WATERMARKS|ALLOC_CPUSET); + zonelist, ALLOC_NO_WATERMARKS); if (page) goto got_pg; if (gfp_mask & __GFP_NOFAIL) { -- I won't rest till it's the best ... Programmer, Linux Scalability Paul Jackson 1.650.933.1373 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org