[PATCH] powerpc: add support for PAGE_SIZEs greater than 4KB for
Ilya Yanok
yanok at emcraft.com
Fri Sep 12 08:44:18 EST 2008
Hi,
prodyut hazarika wrote:
> In file arch/powerpc/mm/pgtable_32.c, we have:
>
> #ifdef CONFIG_PTE_64BIT
> /* 44x uses an 8kB pgdir because it has 8-byte Linux PTEs. */
> #define PGDIR_ORDER 1
> #else
> #define PGDIR_ORDER 0
> #endif
> pgd_t *pgd_alloc(struct mm_struct *mm)
> {
> pgd_t *ret;
>
> ret = (pgd_t *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, PGDIR_ORDER);
> return ret;
> }
>
> Thus, we allocate 2 pages for 44x processors for PGD. This is needed
> only for 4K page.
> We are anyway not using the whole 64K or 256K page for the PGD. So
> there is no point to waste an additional 64K or 256KB page
>
Ok. Not sure I'm right but I think 16K case doesn't need second page
too. (PGDIR_SHIFT=25, so sizeof(pgd_t)<<(32-PGDIR_SHIFT) < 16KB)
> Change this to:
> #ifdef CONFIG_PTE_64BIT
> #if (PAGE_SHIFT == 12)
>
I think #ifdef CONFIG_PTE_64BIT is a little bit confusing here...
Actually PGDIR_ORDER should be something like max(32 + 2 - PGDIR_SHIFT
- PAGE_SHIFT, 0)
> /* 44x uses an 8kB pgdir because it has 8-byte Linux PTEs. */
> #define PGDIR_ORDER 1
> #else
> #define PGDIR_ORDER 0
> #endif
> #else
> #define PGDIR_ORDER 0
> #endif
>
Yuri, any comments?
Regards, Ilya.
More information about the Linuxppc-dev
mailing list