2008-03-27 04:05:16

by Christoph Lameter

[permalink] [raw]
Subject: [x86] Stricter check in follow_huge_addr()

From: Christoph Lameter <[email protected]>
Subject: Compound Pages: Stricter check in follow_huge_addr

The first page of the compound page is determined in follow_huge_addr()
but then PageCompound() only checks if the page is part of a compound page.
PageHead() allows checking if this is indeed the first page of the
compound.

Cc: Jeremy Fitzhardinge <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Christoph Lameter <[email protected]>

---
arch/x86/mm/hugetlbpage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.25-rc5-mm1/arch/x86/mm/hugetlbpage.c
===================================================================
--- linux-2.6.25-rc5-mm1.orig/arch/x86/mm/hugetlbpage.c 2008-03-26 20:43:56.796667401 -0700
+++ linux-2.6.25-rc5-mm1/arch/x86/mm/hugetlbpage.c 2008-03-26 20:44:55.526669888 -0700
@@ -178,7 +178,7 @@ follow_huge_addr(struct mm_struct *mm, u

page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)];

- WARN_ON(!PageCompound(page));
+ WARN_ON(!PageHead(page));

return page;
}


2008-03-27 08:13:49

by Ingo Molnar

[permalink] [raw]
Subject: Re: [x86] Stricter check in follow_huge_addr()


* Christoph Lameter <[email protected]> wrote:

> From: Christoph Lameter <[email protected]>
> Subject: Compound Pages: Stricter check in follow_huge_addr
>
> The first page of the compound page is determined in
> follow_huge_addr() but then PageCompound() only checks if the page is
> part of a compound page. PageHead() allows checking if this is indeed
> the first page of the compound.

thanks Christoph, applied.

btw., what type of real-life problem does this address? Did this trigger
somewhere? (if yes, do you have any URLs i could put into the
changelog?)

Ingo

2008-03-27 18:45:51

by Christoph Lameter

[permalink] [raw]
Subject: Re: [x86] Stricter check in follow_huge_addr()

On Thu, 27 Mar 2008, Ingo Molnar wrote:

> btw., what type of real-life problem does this address? Did this trigger
> somewhere? (if yes, do you have any URLs i could put into the
> changelog?)

Does not address any issues. I just saw it on review while thinking about
how to optimize checks.