Skip to content
  • Michal Hocko's avatar
    arm64: get rid of superfluous __GFP_REPEAT · f3610a6a
    Michal Hocko authored
    __GFP_REPEAT has a rather weak semantic but since it has been introduced
    around 2.6.12 it has been ignored for low order allocations.
    
    {pte,pmd,pud}_alloc_one{_kernel}, late_pgtable_alloc use PGALLOC_GFP for
    __get_free_page (aka order-0).
    
    pgd_alloc is slightly more complex because it allocates from pgd_cache
    if PGD_SIZE != PAGE_SIZE and PGD_SIZE depends on the configuration
    (CONFIG_ARM64_VA_BITS, PAGE_SHIFT and CONFIG_PGTABLE_LEVELS).
    
    As per
    config PGTABLE_LEVELS
    	int
    	default 2 if ARM64_16K_PAGES && ARM64_VA_BITS_36
    	default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
    	default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
    	default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
    	default 3 if ARM64_16K_PAGES && ARM64_VA_BITS_47
    	default 4 if !ARM64_64K_PAGES && ARM64_VA_BITS_48
    
    we should have the following options
    
      CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:4 PAGE_SIZE:4k size:4096 pages:1
      CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:4 PAGE_SIZE:16k size:16 pages:1
      CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:64k size:512 pages:1
      CONFIG_ARM64_VA_BITS:47 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:16k size:16384 pages:1
      CONFIG_ARM64_VA_BITS:42 CONFIG_PGTABLE_LEVELS:2 PAGE_SIZE:64k size:65536 pages:1
      CONFIG_ARM64_VA_BITS:39 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:4k size:4096 pages:1
      CONFIG_ARM64_VA_BITS:36 CONFIG_PGTABLE_LEVELS:2 PAGE_SIZE:16k size:16384 pages:1
    
    All of them fit into a single page (aka order-0).  This means that this
    flag has never been actually useful here because it has always been used
    only for PAGE_ALLOC_COSTLY requests.
    
    Link: http://lkml.kernel.org/r/1464599699-30131-6-git-send-email-mhocko@kernel.org
    
    
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f3610a6a