Subject: Re: [PATCH] ppc44x: support for 256K PAGE_SIZE

From: Segher Boessenkool <[email-masked]>
Date: Tue, 23 Oct 2007 15:59:31 +0200

>>>> The following patch adds support for 256KB PAGE_SIZE on ppc44x-
>>>> based boards.
>>>> The applications to be run on the kernel with 256KB PAGE_SIZE have
>>>> to be
>>>> built using the modified version of binutils, where the MAXPAGESIZE
>>>> definition is set to 0x40000 (as opposite to standard 0x10000).
>>>
>>> Have you measured the performance using a 64kB page size?  If so, how
>>> does it compare with the 256kB page size?
>>
>> I was wondering about this as well?  Isn't this technically in
>> violation of the ABI?
>
>  No it isn't the violation.
>
>  As stated in "System V ABI. PowerPC processor supplement"
> (on which the "Linux Standard Base Core Specification for PPC32"
> is based): " ... Virtual addresses and file offsets for the PowerPC 
> processor family
> segments are congruent modulo 64 Kbytes (0x10000) or larger powers of 
> 2...".
>
>  So, 256 Kbytes is just a larger case.

If I understand you correctly, the only problem with existing binaries
is that the ELF segments are aligned to 64kB, but not necessarily to
256kB.  Couldn't you handle this as a special case, for example by
mapping the "ends" of such an unaligned segment with normal 4kB pages?
That way, a new binutils isn't required to get a big part of the 
benefit,
and importantly, existing shared library binaries will work with your
apps.

Segher