• Christophe Leroy's avatar
    powerpc: get hugetlbpage handling more generic · 03bb2d65
    Christophe Leroy authored
    Today there are two implementations of hugetlbpages which are managed
    by exclusive #ifdefs:
    * FSL_BOOKE: several directory entries points to the same single hugepage
    * BOOK3S: one upper level directory entry points to a table of hugepages
    
    In preparation of implementation of hugepage support on the 8xx, we
    need a mix of the two above solutions, because the 8xx needs both cases
    depending on the size of pages:
    * In 4k page size mode, each PGD entry covers a 4M bytes area. It means
    that 2 PGD entries will be necessary to cover an 8M hugepage while a
    single PGD entry will cover 8x 512k hugepages.
    * In 16 page size mode, each PGD entry covers a 64M bytes area. It means
    that 8x 8M hugepages will be covered by one PGD entry and 64x 512k
    hugepages will be covers by one PGD entry.
    
    This patch:
    * removes #ifdefs in favor of if/else based on the range sizes
    * merges the two huge_pte_alloc() functions as they are pretty similar
    * merges the two hugetlbpage_init() functions as they are pretty similar
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> (v3)
    Signed-off-by: default avatarScott Wood <oss@buserror.net>
    03bb2d65
hugetlbpage.c 25.2 KB