Subject: Re: [PATCH 1/1] PPC32 : Huge-page support for ppc440 - 2.6.19-rc4 - revised

From: David Gibson <[email-masked]>
Date: Wed, 13 Dec 2006 10:02:11 +1100

On Tue, Dec 12, 2006 at 11:04:07AM -0500, Edi Shmueli wrote:
[snip]
> Thanks David,
> One step at a time, lets start with libhugetlbfs :-)
> I'm successfully able to run most of my tests using the library, backing my data,text and BSS with huge-pages.
> There is a major improvement in performance, similar to what I reported above.
> Good job with the library !!!

Ok.. how does the library's own testsuite go ("make check").  That
testsuite has tests for kernel bugs as well as library bugs.

> There is a problem though when a program calls "fopen".
> I see hugetlbfs does the unmapping/mapping , moves control to main(),
> and then a crash with the following error:
> "*** glibc detected *** free(): invalid pointer: 0x3002a008 ***"
> This happens inside fopen() (....which never returns).

Ok, do you get any similar problems with the minimal tests in the
testsuite?

`> Here is the detailed output.
> 
> /bgd-public/edi/IS # ./is.A.linux_ser_hugetlbfs
> libhugetlbfs: Hugepage segment 0 (phdr 2): 0x10000000-0x10001b70  (filesz=0x1b70) (prot = 0x5)
> libhugetlbfs: Hugepage segment 1 (phdr 3): 0x11000000-0x170006e8  (filesz=0x274) (prot = 0x7)
> libhugetlbfs: HUGETLB_SHARE=0, sharing disabled
> libhugetlbfs: Got unshared fd as expected -- Preparing
> libhugetlbfs: Mapped hugeseg at 0x31000000. Copying 0x1b70 bytes from 0x10000000...
> done
> libhugetlbfs: Minimal copy was not performed
> libhugetlbfs: Prepare succeeded
> libhugetlbfs: HUGETLB_SHARE=0, sharing disabled
> libhugetlbfs: Got unshared fd as expected -- Preparing
> libhugetlbfs: Mapped hugeseg at 0x31000000. Copying 0x274 bytes from 0x11000000...
> done
> libhugetlbfs: Minimal copy was not performed
> libhugetlbfs: Prepare succeeded
> *** glibc detected *** free(): invalid pointer: 0x3002a008 ***
> Aborted

If you can send me a non-whitespace-mangled version of your patch, I
can try to replicate this here.  If you made any hacks to libhugetlbfs
to get it working on ppc32, a patch for those would be handy too.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson