Large Pages in Linux
summary
Argues for making Linux page caching work with arbitrary power-of-two page sizes instead of only 4KB or 2MB, and shows code that generalizes the page cache and block layer, updates file-system IO map changes (XFS, NFS tested), and switches to allocate on read-ahead so sequential reads and mmap can form larger pages without defeating readahead; keeps khugepaged for later coalescing. Reports practical bugs encountered (zeroing/mapping order>0 pages, refcount and bio-iterator issues) and warns about wasted RAM and oversized I/O like 1GB pages.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:40Translation Lookaside Buffer
- 1:52Page Tables
- 4:03TLB Entries
- 4:52CPU Support
- 5:22Paging History
- 8:58Large Page Support
- 12:59Huge Pages
- 15:53Page Size
- 19:26Huge Page Cache
- 21:47Large Page Cache
- 25:50Page Fault Allocation
- 27:47Read Ahead
- 30:44The Code
- 35:03Questions
- 39:11Read Pages
related talks
30mFlexible Paging in Linux: Per-process Page Size
47mLinux's Leap Beyond Fixed Pages
39mMM101: Introduction to Linux Memory Management
41mOverview of Linux Page Migration and Accelerating It With Multi-threading and DMA Of...
41mLies Programmers Believe about Memory
26mLet's demystify memory
14mDecoupling Large Folios from Transparent Huge Pages
46mDeep dive into virtual memory and large pages
