Lines Matching refs:userfaultfd

20 Userspace creates a new userfaultfd, initializes it, and registers one or more
22 region(s) result in a message being delivered to the userfaultfd, notifying
25 The ``userfaultfd`` (aside from registering and unregistering virtual
32 registered in the ``userfaultfd`` that allows userland to efficiently
39 ``userfaultfd`` runtime load never takes the mmap_lock for writing).
44 The ``userfaultfd``, once created, can also be
48 (well of course unless they later try to use the ``userfaultfd``
55 Creating a userfaultfd
58 There are two ways to create a new userfaultfd, each of which provide ways to
62 The first way, supported since userfaultfd was introduced, is the
63 userfaultfd(2) syscall. Access to this is controlled in several ways:
65 - Any user can always create a userfaultfd which traps userspace page faults
66 only. Such a userfaultfd can be created using the userfaultfd(2) syscall
75 /dev/userfaultfd and issuing a USERFAULTFD_IOC_NEW ioctl to it. This method
76 yields equivalent userfaultfds to the userfaultfd(2) syscall.
78 Unlike userfaultfd(2), access to /dev/userfaultfd is controlled via normal
80 userfaultfd specifically, without also granting other unrelated privileges at
82 to /dev/userfaultfd can always create userfaultfds that trap kernel page faults;
85 Initializing a userfaultfd
88 When first opened the ``userfaultfd`` must be enabled invoking the
100 defines what memory types are supported by the ``userfaultfd`` and what
105 detail below in the `Non-cooperative userfaultfd`_ section.
122 Once the ``userfaultfd`` API has been enabled the ``UFFDIO_REGISTER``
124 bitmask) to register a memory range in the ``userfaultfd`` by setting the
135 memory from the ``userfaultfd`` registered range). This means a userfault
165 the zero page for a missing fault. With userfaultfd, userspace can
227 QEMU/KVM is using the ``userfaultfd`` syscall to implement postcopy live
231 ``userfaultfd`` abstraction is generic enough that not a single line of
253 ioctls on the ``userfaultfd`` in order to map the received pages into the
257 poll() to the ``userfaultfd`` in parallel. When a ``POLLIN`` event is
259 the ``userfaultfd`` and receives the fault address (or ``-EAGAIN`` in case the
287 Non-cooperative userfaultfd
290 When the ``userfaultfd`` is monitored by an external manager, the manager
298 enable ``userfaultfd`` hooks for fork(). When this feature is
299 enabled, the ``userfaultfd`` context of the parent process is
302 ``userfaultfd`` context in the ``uffd_msg.fork``.
324 ``userfaultfd`` manager. In the former case, the virtual memory is
326 ``userfaultfd``, and if a page fault occurs in that area it will be
331 ``userfaultfd`` context for such area disappears too and the manager will
339 soon as manager executes read(). The ``userfaultfd`` manager should
348 single threaded non-cooperative ``userfaultfd`` manager implementations. A
350 ``userfaultfd`` feature to facilitate multithreading enhancements of the