• Peter Xu's avatar
    mm/uffd: detect pgtable allocation failures · d1751118
    Peter Xu authored
    Before this patch, when there's any pgtable allocation issues happened
    during change_protection(), the error will be ignored from the syscall. 
    For shmem, there will be an error dumped into the host dmesg.  Two issues
    with that:
    
      (1) Doing a trace dump when allocation fails is not anything close to
          grace.
    
      (2) The user should be notified with any kind of such error, so the user
          can trap it and decide what to do next, either by retrying, or stop
          the process properly, or anything else.
    
    For userfault users, this will change the API of UFFDIO_WRITEPROTECT when
    pgtable allocation failure happened.  It should not normally break anyone,
    though.  If it breaks, then in good ways.
    
    One man-page update will be on the way to introduce the new -ENOMEM for
    UFFDIO_WRITEPROTECT.  Not marking stable so we keep the old behavior on
    the 5.19-till-now kernels.
    
    [akpm@linux-foundation.org: coding-style cleanups]
    Link: https://lkml.kernel.org/r/20230104225207.1066932-4-peterx@redhat.comSigned-off-by: default avatarPeter Xu <peterx@redhat.com>
    Reported-by: default avatarJames Houghton <jthoughton@google.com>
    Acked-by: default avatarJames Houghton <jthoughton@google.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Axel Rasmussen <axelrasmussen@google.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Nadav Amit <nadav.amit@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    d1751118
hugetlb.c 208 KB