Lines Matching refs:userfaultfd
18 Userspace creates a new userfaultfd, initializes it, and registers one or more
20 region(s) result in a message being delivered to the userfaultfd, notifying
23 The ``userfaultfd`` (aside from registering and unregistering virtual
30 registered in the ``userfaultfd`` that allows userland to efficiently
37 ``userfaultfd`` runtime load never takes the mmap_lock for writing).
42 The ``userfaultfd``, once created, can also be
46 (well of course unless they later try to use the ``userfaultfd``
53 Creating a userfaultfd
56 There are two ways to create a new userfaultfd, each of which provide ways to
60 The first way, supported since userfaultfd was introduced, is the
61 userfaultfd(2) syscall. Access to this is controlled in several ways:
63 - Any user can always create a userfaultfd which traps userspace page faults
64 only. Such a userfaultfd can be created using the userfaultfd(2) syscall
73 /dev/userfaultfd and issuing a USERFAULTFD_IOC_NEW ioctl to it. This method
74 yields equivalent userfaultfds to the userfaultfd(2) syscall.
76 Unlike userfaultfd(2), access to /dev/userfaultfd is controlled via normal
78 userfaultfd specifically, without also granting other unrelated privileges at
80 to /dev/userfaultfd can always create userfaultfds that trap kernel page faults;
83 Initializing a userfaultfd
86 When first opened the ``userfaultfd`` must be enabled invoking the
98 defines what memory types are supported by the ``userfaultfd`` and what
103 detail below in the `Non-cooperative userfaultfd`_ section.
120 Once the ``userfaultfd`` API has been enabled the ``UFFDIO_REGISTER``
122 bitmask) to register a memory range in the ``userfaultfd`` by setting the
133 memory from the ``userfaultfd`` registered range). This means a userfault
163 the zero page for a missing fault. With userfaultfd, userspace can
228 present pte. In other words, there will be a userfaultfd write fault
265 QEMU/KVM is using the ``userfaultfd`` syscall to implement postcopy live
269 ``userfaultfd`` abstraction is generic enough that not a single line of
291 ioctls on the ``userfaultfd`` in order to map the received pages into the
295 poll() to the ``userfaultfd`` in parallel. When a ``POLLIN`` event is
297 the ``userfaultfd`` and receives the fault address (or ``-EAGAIN`` in case the
325 Non-cooperative userfaultfd
328 When the ``userfaultfd`` is monitored by an external manager, the manager
336 enable ``userfaultfd`` hooks for fork(). When this feature is
337 enabled, the ``userfaultfd`` context of the parent process is
340 ``userfaultfd`` context in the ``uffd_msg.fork``.
362 ``userfaultfd`` manager. In the former case, the virtual memory is
364 ``userfaultfd``, and if a page fault occurs in that area it will be
369 ``userfaultfd`` context for such area disappears too and the manager will
377 soon as manager executes read(). The ``userfaultfd`` manager should
386 single threaded non-cooperative ``userfaultfd`` manager implementations. A
388 ``userfaultfd`` feature to facilitate multithreading enhancements of the