=== Memory changes tracking with userfaultfd-WP ===
+
+
'''Summary:''' add ability to track memory changes of the snapshotted processes using userfaultfd-WP
+
+
Currently CRIU uses [[Memory_changes_tracking|Soft-dirty]] mechanism in Linux kernel to track memory changes.
+
This mechanism can be complemented or even completely replaced with recently proposed userfaultfd-WP.
+
+
Userfault allows implementation of paging in userspace. It allows an application to receive notifications about page faults and provide the desired memory contents for the faulting pages. In the current upstream kernels only missing page faults are supported, but there is an ongoing work to allow notifications for write faults as well. Using these notifications it would be possible to precisely track memory accesses of during pre-dump iterations and this approach may prove more efficient than soft-dirty.