cache_ext: Customizing the Page Cache with eBPF
summary
An eBPF-based framework called cache_ext injects hooks for page insertion, access, and eviction so users load kernel-verified policies per cgroup without rebuilding the kernel. Eight policies are implemented (LFU, MRU, LHD, S3, etc.), including an application-informed get/scan split that yields up to 70% higher throughput and 58% lower tail latency on HTAP-like workloads. Implementation adds ~2k LOC, handles safety via vetted pointers and eviction lists, and shows no single policy wins all.
AI-written summary · about
chapters (9)
- 0:00Introduction to cache_ext
- 2:30Limitations of current page cache
- 4:58Introducing cache_ext framework
- 8:31Application-informed policies demo
- 10:58Evaluating modern caching policies
- 12:44Per-cgroup policy implementation
- 15:32Memory safety challenges
- 16:35Future of BPF in page cache
- 19:44Q&A session
related talks
12mPageFlex: Flexible and Efficient User-space Delegation of Linux Paging Policies...
13mBMC: Accelerating Memcached using Safe In-kernel Caching and Pre-stack Processing
19mP2CACHE: Exploring Tiered Memory for In-Kernel File Systems Caching
16mONCache: A Cache-Based Low-Overhead Container Overlay Network
43mHotBPF++: A More Powerful Memory Protection for the Linux Kernel
16mPeeR: First-Class Scheduling for Latency-Critical eBPF Applications
31mDesign and implementation of Autocaching for CXLSSD
30mScheduling at Scale: eBPF Schedulers with Sched_ext
