• Rashmica Gupta's avatar
    powerpc/Kconfig: Update config option based on page size. · a7ee5395
    Rashmica Gupta authored
    Currently on PPC64 changing kernel pagesize from 4K to 64K leaves
    FORCE_MAX_ZONEORDER set to 13 - which produces a compile error.
    
    The error occurs because of the following constraint (from
    include/linux/mmzone.h) being violated:
    
    	MAX_ORDER -1 + PAGESHIFT <= SECTION_SIZE_BITS.
    
    Expanding this out, we get:
    
    	FORCE_MAX_ZONEBITS <= 25 - PAGESHIFT,
    
    which requires, for a 64K page, FORCE_MAX_ZONEBITS <= 9. Thus set max
    value of FORCE_MAX_ZONEORDER for 64K pages to 9, and 4K pages to 13.
    
    Also, check the minimum value:
    In include/linux/huge_mm.h, we have the constraint HPAGE_PMD_ORDER <
    MAX_ORDER which expands out to:
    
    	PTE_INDEX_SIZE < FORCE_MAX_ZONEORDER.
    
    PTE_INDEX_SIZE is:
    	9 (4k hash or no hash 4K pgtable) or
    	8 (64K hash or no hash 64K pgtable).
    Thus a min value of 8 for 64K pages and 9 for 4K pages is reasonable.
    
    So, update the range of FORCE_MAX_ZONEORDER from 9-64 to 8-9 for 64K pages
    and from 13-64 to 9-13 for 4K pages.
    Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
    Reviewed-by: default avatarBalbir Singh <bsingharora@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    a7ee5395
Kconfig 29 KB