• Kirill A. Shutemov's avatar
    mm/huge_memory.c: thp: fix conflict of above-47bit hint address and PMD alignment · ee342a5b
    Kirill A. Shutemov authored
    [ Upstream commit 97d3d0f9 ]
    
    Patch series "Fix two above-47bit hint address vs.  THP bugs".
    
    The two get_unmapped_area() implementations have to be fixed to provide
    THP-friendly mappings if above-47bit hint address is specified.
    
    This patch (of 2):
    
    Filesystems use thp_get_unmapped_area() to provide THP-friendly
    mappings.  For DAX in particular.
    
    Normally, the kernel doesn't create userspace mappings above 47-bit,
    even if the machine allows this (such as with 5-level paging on x86-64).
    Not all user space is ready to handle wide addresses.  It's known that
    at least some JIT compilers use higher bits in pointers to encode their
    information.
    
    Userspace can ask for allocation from full address space by specifying
    hint address (with or without MAP_FIXED) above 47-bits.  If the
    application doesn't need a particular address, but wants to allocate
    from whole address space it can specify -1 as a hint ...
    ee342a5b
huge_memory.c 82.7 KB