• Andrea Arcangeli's avatar
    userfaultfd: prevent khugepaged to merge if userfaultfd is armed · c1294d05
    Andrea Arcangeli authored
    If userfaultfd is armed on a certain vma we can't "fill" the holes with
    zeroes or we'll break the userland on demand paging.  The holes if the
    userfault is armed, are really missing information (not zeroes) that the
    userland has to load from network or elsewhere.
    
    The same issue happens for wrprotected ptes that we can't just convert
    into a single writable pmd_trans_huge.
    
    We could however in theory still merge across zeropages if only
    VM_UFFD_MISSING is set (so if VM_UFFD_WP is not set)...  that could be
    slightly improved but it'd be much more complex code for a tiny corner
    case.
    Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Acked-by: default avatarPavel Emelyanov <xemul@parallels.com>
    Cc: Sanidhya Kashyap <sanidhya.gatech@gmail.com>
    Cc: zhang.zhanghailiang@huawei.com
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Andres Lagar-Cavilla <andreslc@google.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Peter Feiner <pfeiner@google.com>
    Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: "Huangpeng (Peter)" <peter.huangpeng@huawei.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c1294d05
huge_memory.c 79.6 KB