• Andrea Arcangeli's avatar
    userfaultfd: selftest: exercise UFFDIO_COPY/ZEROPAGE -EEXIST · 67e80328
    Andrea Arcangeli authored
    This will retry the UFFDIO_COPY/ZEROPAGE to verify it returns -EEXIST at
    the first invocation and then later every 10 seconds.
    
    In the filebacked MAP_SHARED case this also verifies the -EEXIST
    triggered in the filesystem pagecache insertion, if the offset in the
    file was not a hole.
    
    shmem MAP_SHARED tries to index the newly allocated pagecache in the
    radix tree before checking the pagetable so it doesn't need any
    assistance to exercise that case.
    
    hugetlbfs checks the pmd to be not none before trying to index the
    hugetlbfs page in the radix tree, so it requires to run UFFDIO_COPY into
    an alias mapping (the alternative would be to use MADV_DONTNEED to only
    zap the pagetables, but that doesn't work on hugetlbfs).
    
    [akpm@linux-foundation.org: fix uffdio_zeropage(), per Mike Kravetz]
    Link: http://lkml.kernel.org/r/20170802165145.22628-3-aarcange@redhat.comSigned-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
    Cc: Alexey Perevalov <a.perevalov@samsung.com>
    Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    67e80328
userfaultfd.c 33.8 KB