The application can then use the
.B UFFDIO_COPY
or
-.B UFFDIO_ZERO
+.B UFFDIO_ZEROPAGE
.BR ioctl (2)
operations to resolve the page fault.
.PP
-Starting from Linux 4.14, if application sets
+Starting from Linux 4.14, if the application sets the
.B UFFD_FEATURE_SIGBUS
-feature bit using
+feature bit using the
.B UFFDIO_API
.BR ioctl (2),
-no page fault notification will be forwarded to
-the user-space, instead a
+no page-fault notification will be forwarded to user space.
+Instead a
.B SIGBUS
-signal is delivered to the faulting process. With this feature,
-userfaultfd can be used for robustness purpose to simply catch
+signal is delivered to the faulting process.
+With this feature,
+userfaultfd can be used for robustness purposes to simply catch
any access to areas within the registered address range that do not
have pages allocated, without having to listen to userfaultfd events.
No userfaultfd monitor will be required for dealing with such memory
-accesses. For example, this feature can be useful for applications that
+accesses.
+For example, this feature can be useful for applications that
want to prevent the kernel from automatically allocating pages and filling
-holes in sparse files when the hole is accessed thru mapped address.
+holes in sparse files when the hole is accessed through a memory mapping.
.PP
The
.B UFFD_FEATURE_SIGBUS
-feature is implicitly inherited through fork() if used in combination with
+feature is implicitly inherited through
+.BR fork (2)
+if used in combination with
.BR UFFD_FEATURE_FORK .
-
.PP
Details of the various
.BR ioctl (2)
as well as post-copy migration to allow (nearly) uninterrupted execution
when transferring virtual machines and Linux containers
from one host to another.
+.SH BUGS
+If the
+.B UFFD_FEATURE_EVENT_FORK
+is enabled and a system call from the
+.BR fork (2)
+family is interrupted by a signal or failed, a stale userfaultfd descriptor
+might be created.
+In this case, a spurious
+.B UFFD_EVENT_FORK
+will be delivered to the userfaultfd monitor.
.SH EXAMPLE
The program below demonstrates the use of the userfaultfd mechanism.
The program creates two threads, one of which acts as the
.BR madvise (2),
.BR mmap (2)
.PP
-.IR Documentation/vm/userfaultfd.txt
+.IR Documentation/admin-guide/mm/userfaultfd.rst
in the Linux kernel source tree
.PP