• Srikar Dronamraju's avatar
    powerpc: implement arch_reserved_kernel_pages · 1e76609c
    Srikar Dronamraju authored
    Currently significant amount of memory is reserved only in kernel booted
    to capture kernel dump using the fa_dump method.
    
    Kernels compiled with CONFIG_DEFERRED_STRUCT_PAGE_INIT will initialize
    only certain size memory per node.  The certain size takes into account
    the dentry and inode cache sizes.  Currently the cache sizes are
    calculated based on the total system memory including the reserved
    memory.  However such a kernel when booting the same kernel as fadump
    kernel will not be able to allocate the required amount of memory to
    suffice for the dentry and inode caches.  This results in crashes like
    
    Hence only implement arch_reserved_kernel_pages() for CONFIG_FA_DUMP
    configurations.  The amount reserved will be reduced while calculating
    the large caches and will avoid crashes like the below on large systems
    such as 32 TB systems.
    
      Dentry cache hash table entries: 536870912 (order: 16, 4294967296 bytes)
      vmalloc: allocation failure, allocated 4097114112 of 17179934720 bytes
      swapper/0: page allocation failure: order:0, mode:0x2080020(GFP_ATOMIC)
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.6-master+ #3
      Call Trace:
         dump_stack+0xb0/0xf0 (unreliable)
         warn_alloc_failed+0x114/0x160
         __vmalloc_node_range+0x304/0x340
         __vmalloc+0x6c/0x90
         alloc_large_system_hash+0x1b8/0x2c0
         inode_init+0x94/0xe4
         vfs_caches_init+0x8c/0x13c
         start_kernel+0x50c/0x578
         start_here_common+0x20/0xa8
    
    Link: http://lkml.kernel.org/r/1472476010-4709-4-git-send-email-srikar@linux.vnet.ibm.comSigned-off-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    Suggested-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1e76609c
mmzone.h 1.04 KB