• Vaishali Thakkar's avatar
    mm/hugetlb: introduce hugetlb_bad_size() · 9fee021d
    Vaishali Thakkar authored
    When any unsupported hugepage size is specified, 'hugepagesz=' and
    'hugepages=' should be ignored during command line parsing until any
    supported hugepage size is found.  But currently incorrect number of
    hugepages are allocated when unsupported size is specified as it fails
    to ignore the 'hugepages=' command.
    
    Test case:
    
    Note that this is specific to x86 architecture.
    
    Boot the kernel with command line option 'hugepagesz=256M hugepages=X'.
    After boot, dmesg output shows that X number of hugepages of the size 2M
    is pre-allocated instead of 0.
    
    So, to handle such command line options, introduce new routine
    hugetlb_bad_size.  The routine hugetlb_bad_size sets the global variable
    parsed_valid_hugepagesz.  We are using parsed_valid_hugepagesz to save
    the state when unsupported hugepagesize is found so that we can ignore
    the 'hugepages=' parameters after that and then reset the variable when
    supported hugepage size is found.
    
    The routine hugetlb_bad_size can be called while setting 'hugepagesz='
    parameter in an architecture specific code.
    Signed-off-by: default avatarVaishali Thakkar <vaishali.thakkar@oracle.com>
    Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
    Cc: Yaowei Bai <baiyaowei@cmss.chinamobile.com>
    Cc: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9fee021d
hugetlb.c 118 KB