Introducing PAGEMAP_SCAN IOCTL for Windows syscalls translation...
summary
Adds a kernel-side scanner that returns compact ranges of pages with selected PTE bits and can atomically get and clear write-tracking state for a mapping; implemented as PAGEMAP_SCAN ioctl (v33) and built on userfaultfd features including UFFD_FEATURE_WP_ASYNC and WP_UNPOPULATED, supports huge pages and holes, and returns filtered results rather than full pagemap dumps. CRIU uses it so CRIU no longer freezes processes and gets accurate changed-page lists; internal benchmarks report large speedups over user-space scanning.
AI-written summary · about
chapters (11)
- 0:00Introduction to PAGEMAP_SCAN
- 1:03Windows API translation challenges
- 2:30Soft dirty flag limitations
- 5:19Prototype and upstream issues
- 7:25Userfaultfd and PTE markers
- 8:28PAGEMAP_SCAN IOCTL design
- 11:18CRIU integration benefits
- 14:51Benchmarking and performance
- 16:46Potential use cases
- 17:51Hardware dirty bit discussion
- 20:57Future improvements and Q&A
related talks
30miommu page table consolidation and iommufd
26mCooperative DMA in a memory-oversubscribed environment
30mFlexible Paging in Linux: Per-process Page Size
44mLarge Pages in Linux
29mCopy On Write, Get User Pages, and Mysterious Counters
12mPageFlex: Flexible and Efficient User-space Delegation of Linux Paging Policies...
11mAdvanced Parallel Memory Virtualization
47mLinux's Leap Beyond Fixed Pages
