Unreleased

  • Added Uffd::read_events that can read multiple events from the userfaultfd file descriptor.

  • Updated bitflags dependency to 2.2.1.

  • Use /dev/userfaultfd as the default API for creating userfaultfd file descriptors.

    Since Linux 5.11 a process can select if it wants to handle page faults triggered in kernel space or not. Under this mechanism, processes that wish to handle those, need to have CAP_SYS_PTRACE capability. CAP_SYS_PTRACE allows a process to do much more than create userfault fds, so with 6.1 Linux introduces /dev/userfaultfd, a special character device that allows creating userfault file descriptors using the USERFAULTFD_IOC_NEW ioctl. Access to this device is granted via file system permissions and does not require CAP_SYS_PTRACE to handle kernel triggered page faults.

    We now default to using /dev/userfaultfd for creating the descriptors and only if that file is not present, we fall back to using the syscall.

0.3.1 (2021-02-17)

  • Added support for the UFFD_FEATURE_THREAD_ID flag when compiled with the linux4_14 Cargo feature.

0.3.0 (2021-02-03)

  • Update bindgen dependency of userfaultfd-sys to 0.57. Thank you @jgowans

0.2.1 (2020-11-20)

  • Make ReadWrite public. Thank you @electroCutie

0.2.0 (2020-04-10)

  • Removed the compile-time Linux version check, and replaced it with a Cargo feature.

    The Linux version check was overly restrictive, even on systems that did have the right kernel version installed but had older headers in /usr/include/linux. Beyond that, this check made it more difficult to compile on a different host than what's targeted.

    There is now a linux4_14 feature flag on userfaultfd-sys, which turns on and tests the extra constants available in that version. Since userfaultfd did not make use of any of those newer features, it doesn't have a feature flag yet.

    Applications should take care when initializing with UffdBuilder to specify the features and ioctls they require, so that an unsupported version will be detected at runtime.

0.1.0 (2020-04-07)

  • Initial public release of userfaultfd-rs.