From: Paul Jackson <pj@sgi.com>
To: akpm@osdl.org, linux-kernel@vger.kernel.org
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
linux-mm@kvack.org, Simon Derr <Simon.Derr@bull.net>,
Christoph Lameter <clameter@sgi.com>,
"Rohit, Seth" <rohit.seth@intel.com>, Paul Jackson <pj@sgi.com>
Subject: [PATCH 04/05] mm simplify __alloc_pages cpuset hardwall logic
Date: Sun, 13 Nov 2005 20:04:04 -0800 (PST) [thread overview]
Message-ID: <20051114040404.13951.44066.sendpatchset@jackhammer.engr.sgi.com> (raw)
In-Reply-To: <20051114040329.13951.39891.sendpatchset@jackhammer.engr.sgi.com>
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
WARNING: multiple messages have this Message-ID (diff)
From: Paul Jackson <pj@sgi.com>
To: akpm@osdl.org, linux-kernel@vger.kernel.org
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
linux-mm@kvack.org, Simon Derr <Simon.Derr@bull.net>,
Christoph Lameter <clameter@sgi.com>,
"Rohit, Seth" <rohit.seth@intel.com>, Paul Jackson <pj@sgi.com>
Subject: [PATCH 04/05] mm simplify __alloc_pages cpuset hardwall logic
Date: Sun, 13 Nov 2005 20:04:04 -0800 (PST) [thread overview]
Message-ID: <20051114040404.13951.44066.sendpatchset@jackhammer.engr.sgi.com> (raw)
In-Reply-To: <20051114040329.13951.39891.sendpatchset@jackhammer.engr.sgi.com>
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, 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2005-11-14 4:04 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-14 4:03 [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags Paul Jackson
2005-11-14 4:03 ` Paul Jackson
2005-11-14 4:03 ` [PATCH 02/05] mm simplify " Paul Jackson
2005-11-14 4:03 ` Paul Jackson
2005-11-14 4:03 ` [PATCH 03/05] mm rationalize __alloc_pages ALLOC_* flag names Paul Jackson
2005-11-14 4:03 ` Paul Jackson
2005-11-15 9:00 ` Nick Piggin
2005-11-15 9:00 ` Nick Piggin
2005-11-15 9:03 ` Andrew Morton
2005-11-15 9:03 ` Andrew Morton
2005-11-15 9:55 ` Nick Piggin
2005-11-15 9:55 ` Nick Piggin
2005-11-15 19:20 ` Paul Jackson
2005-11-15 19:20 ` Paul Jackson
2005-11-15 9:59 ` Arjan van de Ven
2005-11-15 9:59 ` Arjan van de Ven
2005-11-15 9:18 ` Paul Jackson
2005-11-15 9:18 ` Paul Jackson
2005-11-14 4:04 ` Paul Jackson [this message]
2005-11-14 4:04 ` [PATCH 04/05] mm simplify __alloc_pages cpuset hardwall logic Paul Jackson
2005-11-14 4:04 ` [PATCH 05/05] mm GFP_ATOMIC comment Paul Jackson
2005-11-14 4:04 ` Paul Jackson
2005-11-15 8:52 ` [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags Nick Piggin
2005-11-15 8:52 ` Nick Piggin
2005-11-15 9:50 ` Paul Jackson
2005-11-15 9:50 ` Paul Jackson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051114040404.13951.44066.sendpatchset@jackhammer.engr.sgi.com \
--to=pj@sgi.com \
--cc=Simon.Derr@bull.net \
--cc=akpm@osdl.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nickpiggin@yahoo.com.au \
--cc=rohit.seth@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.