Design and implementation of Autocaching for CXLSSD
summary
Autocaching inserts device-backed folios into the file map so the VFS can choose between page cache and device pages per allocation; it implements dynamic structpage allocation by reserving large virtual address space and allocating 4K structpages on demand, shrinking metadata for a 4 TiB CXL SSD from ~64 GiB to ~128 MiB. A device-side flex zone promotion daemon pins likely-hot pages and demotes ping‑pongers; heuristics use IO type, access-cycle, 12‑bit periodized counters and 3‑bit frequency buckets. Prototype is under 200 LOC change and shows performance equal to the better of page cache or DAX depending on memory pressure.
AI-written summary · about
chapters (11)
- 0:00Introduction to Autocaching
- 2:13Motivation for CXL SSD caching
- 5:06Design of Autocaching framework
- 10:02Challenges in implementation
- 16:27Space overhead solutions
- 19:16Cache transition with Flex Zone
- 23:19Comparison with memory tiering
- 25:15File system compatibility limits
- 28:15Device characteristic considerations
- 28:57Performance results overview
- 30:03Future plans and Q&A
related talks
25mShared CXL 3 memory what will be required
21mThe Design and Implementation of a Capacity-Variant Storage System
19mP2CACHE: Exploring Tiered Memory for In-Kernel File Systems Caching
22mKernel CXL Cache (safe) support
29mcache_ext: Customizing the Page Cache with eBPF
12mRethinking File Mapping for Persistent Memory
44mLarge Pages in Linux
26mCXL Memory Tiering for heterogenous computing
