Allocators for Compressed Pages: In-depth Comparison with z3fold in Focus
summary
Compares zbud, zsmalloc and z3fold with measured compression ratios and throughput: zsmalloc/zram often show ~1.5x compression while z3fold sits around 2.5–2.7x, landed in mainline 4.8, and supports eviction for zram. Implements optimizations tested: async free to batch coalescing and reduce internal fragmentation, per‑CPU lists to eliminate global spinlocks, and header tweaks; results show improved scalability and lower lock contention on multi‑threaded FIO and Android workloads, though some edge cases still raise fragmentation and header‑space overhead.
AI-written summary · about
chapters (22)
- 0:00Introduction
- 0:44Swapping
- 2:04Cache
- 3:45Pages
- 5:01Data Blocks
- 5:36Illusions
- 9:31Compression Ratio
- 12:03Compressed Alligators
- 13:46Zebra
- 16:10SEM 2016
- 18:45z3fold
- 21:33Updateability metrics
- 22:53Random readwrite
- 23:46Profiling
- 25:08Results
- 25:59Internal fragmentation
- 27:22Spinlock
- 28:03Graph
- 28:26Syncopation
- 30:43Per CPU
- 33:41Conclusions
- 36:43Questions
related talks
20mOptimizing Checkpoints with Built-in Memory Page Compression
14mUnleashing Zoned UFS: Cross-Layer Optimizations for Next-Generation Mobile Storage
14mZNS+: Advanced Zoned Namespace Interface for Supporting In-Storage Zone Compaction
23mImproving data placement for Zoned Linux File systems
25mThe slab allocators of past, present, and future
39mRusty Swapping: Rewriting a Zswap Backend in Rust
19mLLFree: Scalable and Optionally-Persistent Page-Frame Allocation
51mReducing the Kernel's Slab Allocators: Progress Report
