From: Andrew Morton <akpm@osdl.org>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: apw@shadowen.org, mel@csn.ul.ie, stable@kernel.org, linux-mm@kvack.org
Subject: Re: [patch 2/2] mm: handle unaligned zones
Date: Sun, 21 May 2006 03:59:06 -0700 [thread overview]
Message-ID: <20060521035906.3a9997b0.akpm@osdl.org> (raw)
In-Reply-To: <4470417F.2000605@yahoo.com.au>
Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
> >>+ * This function checks whether a buddy is free and is the buddy of page.
> >>+ * We can coalesce a page and its buddy if
> >>+ * (a) the buddy is not "outside" the zone &&
> >> * (b) the buddy is in the buddy system &&
> >> * (c) a page and its buddy have the same order.
> >> *
> >>@@ -292,15 +320,13 @@ __find_combined_index(unsigned long page
> >> *
> >> * For recording page's order, we use page_private(page).
> >> */
> >>-static inline int page_is_buddy(struct page *page, int order)
> >>+static inline int page_is_buddy(struct page *page, struct page *buddy, int order)
> >> {
> >>-#ifdef CONFIG_HOLES_IN_ZONE
> >>- if (!pfn_valid(page_to_pfn(page)))
> >>+ if (buddy_outside_zone(page, buddy))
> >> return 0;
> >
> >
> > This is a heck of a lot of code to be throwing into the page-freeing
> > hotpath. Surely there's a way of moving all this work to
> > initialisation/hotadd time?
>
> Can't think of any good way to do it. We could add yet another page
> flag, which would relegate unaligned portions of zones to only order-0
> pages (and never try to merge them up the buddy allocator).
>
> Of course that's another page flag.
>
> It is possible we can avoid the zone seqlock checks simply by always
> testing whether the pfn is valid (this way the test would be more
> unified with the holes in zone case).
>
> The tests would still be pretty heavyweight though.
How about just throwing the pages away? It sounds like a pretty rare
problem.
--
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:[~2006-05-21 10:59 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-21 8:22 [patch 1/2] mm: detect bad zones Nick Piggin
2006-05-21 8:22 ` [patch 2/2] mm: handle unaligned zones Nick Piggin
2006-05-21 9:19 ` Andrew Morton
2006-05-21 10:31 ` Nick Piggin
2006-05-21 10:59 ` Andrew Morton [this message]
2006-05-21 11:44 ` Nick Piggin
2006-05-21 11:52 ` Nick Piggin
2006-05-22 9:24 ` Mel Gorman
2006-05-22 9:28 ` Mel Gorman
2006-05-22 9:06 ` Mel Gorman
2006-05-22 9:51 ` Nick Piggin
2006-05-21 11:53 ` Nick Piggin
2006-05-22 8:18 ` Andy Whitcroft
2006-05-22 9:37 ` Nick Piggin
2006-05-22 9:52 ` [PATCH 0/2] Zone boundary alignment fixes, default configuration Andy Whitcroft
2006-05-22 9:53 ` [PATCH 1/2] zone allow unaligned zone boundaries add configuration Andy Whitcroft
2006-05-22 9:53 ` [PATCH 2/2] x86 add zone alignment qualifier Andy Whitcroft
2006-05-25 11:19 ` [PATCH 0/2] Zone boundary alignment fixes, default configuration Andy Whitcroft
2006-05-31 0:13 ` [stable] " Chris Wright
2006-05-31 11:41 ` Nick Piggin
2006-05-31 12:08 ` Andy Whitcroft
2006-05-31 17:42 ` Greg KH
2006-05-31 17:16 ` Andy Whitcroft
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=20060521035906.3a9997b0.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=apw@shadowen.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=nickpiggin@yahoo.com.au \
--cc=stable@kernel.org \
/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