• Christophe Leroy's avatar
    powerpc/e500: use contiguous PMD instead of hugepd · 7c44202e
    Christophe Leroy authored
    e500 supports many page sizes among which the following size are
    implemented in the kernel at the time being: 4M, 16M, 64M, 256M, 1G.
    
    On e500, TLB miss for hugepages is exclusively handled by SW even on e6500
    which has HW assistance for 4k pages, so there are no constraints like on
    the 8xx.
    
    On e500/32, all are at PGD/PMD level and can be handled as cont-PMD.
    
    On e500/64, smaller ones are on PMD while bigger ones are on PUD.  Again,
    they can easily be handled as cont-PMD and cont-PUD instead of hugepd.
    
    On e500/32, use the pagesize bits in PTE to know if it is a PMD or a leaf
    entry.  This works because the pagesize bits are in the last 12 bits and
    page tables are 4k aligned.
    
    On e500/64, use highest bit which is always 1 on PxD (Because PxD contains
    virtual address of a kernel memory) and always 0 on PTEs because not all
    bits of RPN are used/possible.
    
    Link: https://lkml.kernel.org/r/dd085987816ed2a0c70adb7e34966cb833fc03e1.1719928057.git.christophe.leroy@csgroup.euSigned-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Peter Xu <peterx@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    7c44202e
pgalloc.h 1.73 KB