From: Johannes Weiner <hannes@cmpxchg.org>
To: "Andrew Morton" <akpm@linux-foundation.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [patch 3/4] mm: bootmem: drop superfluous range check when freeing pages in bulk
Date: Tue, 13 Dec 2011 14:58:30 +0100 [thread overview]
Message-ID: <1323784711-1937-4-git-send-email-hannes@cmpxchg.org> (raw)
In-Reply-To: <1323784711-1937-1-git-send-email-hannes@cmpxchg.org>
The area node_bootmem_map represents is aligned to BITS_PER_LONG, and
all bits in any aligned word of that map valid. When the represented
area extends beyond the end of the node, the non-existant pages will
be marked as reserved.
As a result, when freeing a page block, doing an explicit range check
for whether that block is within the node's range is redundant as the
bitmap is consulted anyway to see whether all pages in the block are
unreserved.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
mm/bootmem.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/mm/bootmem.c b/mm/bootmem.c
index 3e6f152..1aea171 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -197,7 +197,7 @@ static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata)
idx = start - bdata->node_min_pfn;
vec = ~map[idx / BITS_PER_LONG];
- if (aligned && vec == ~0UL && start + BITS_PER_LONG <= end) {
+ if (aligned && vec == ~0UL) {
int order = ilog2(BITS_PER_LONG);
__free_pages_bootmem(pfn_to_page(start), order);
--
1.7.7.3
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-12-13 13:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 13:58 [patch 0/4] mm: bootmem / page allocator bootstrap fixlets Johannes Weiner
2011-12-13 13:58 ` [patch 1/4] mm: page_alloc: remove order assumption from __free_pages_bootmem() Johannes Weiner
2011-12-13 22:05 ` Andrew Morton
2011-12-13 13:58 ` [patch 2/4] mm: page_alloc: generalize order handling in __free_pages_bootmem() Johannes Weiner
2011-12-13 13:58 ` Johannes Weiner [this message]
2011-12-13 15:28 ` [patch 3/4] mm: bootmem: drop superfluous range check when freeing pages in bulk Uwe Kleine-König
2011-12-13 15:44 ` Johannes Weiner
2011-12-13 13:58 ` [patch 4/4] mm: bootmem: try harder to free " Johannes Weiner
2011-12-14 20:20 ` Uwe Kleine-König
2011-12-14 20:42 ` Johannes Weiner
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=1323784711-1937-4-git-send-email-hannes@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=u.kleine-koenig@pengutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).