Subject: Re: [PATCH] powerpc: add 16K/64K pages support for the 44x PPC32 architectures.

From: Ilya Yanok <[email-masked]>
Date: Thu, 11 Dec 2008 04:51:48 +0300

Hi Benjamin,
Benjamin Herrenschmidt wrote:
>>> I'm not sure about the above & PMD_MASK. Shouldn't we instead make it
>>> not build if (PKMAP_BASE & PMD_MASK) != 0 ? 
>>>       
>>  We separated the !4K_PAGES case here exactly because  (PKMAP_BASE & 
>> PMD_MASK) != 0 [see the comment to this chunk - why]. So, this'll turn 
>> out to be broken if we follow your suggestion. Are there any reasons 
>> why we should have PKMAP_BASE aligned on the PMD_SIZE boundary ?
>>     
>
> No, you are right, so why do we need the & PMD_MASK in the 4k case ?
>
> What I don't get is why do we need a different formula for 4k and 64k
> but I might just be stupid :-)
>   

Because we want full PTE table for PKMAP with 4K pages (it's pretty
small - only 512 pages so we really want to use all). And as current
code doesn't support PKMAP being in different PTE tables we want to
align to full PTE table not to lost part of it.

>>  These definitions seem to be related to the page table, so, as for me, 
>> then pgtable.h is the better place for them. Though, as you want; 
>> we'll move this to page_32.h.
>>     
>
> Well, I like having them next to the pte_t/pgd_t definitions since they
> relate directly to the size of those structures.
>   

Well. But pte_t/pgd_t are actually in page.h not page_32.h (along with
pmd/pud for 64bit)... So maybe we need to put definitions for
PMD_T_LOG2/PUD_T_LOG2 too...

Regards, Ilya.