Memory Page-pooling with Auto Refill Feature for Improved Memory Allocati...
summary
Kernel adds kthread auto-refill that wakes when a pool falls below a fill/low watermark and asynchronously allocates pages (order-9 2MB, order-4 16KB, order-0 4KB) into pools, with aggressive watermark checks to avoid ping‑pong and shrinkers reclaim pool memory under pressure. Implemented in dma-buf system_heap on Qualcomm (defaults: 100 MB fill, 40 MB low across six pools ≈600 MB). Measured effects: pool utilization up ~90%, average allocation latency drops ~2.5%, and app kills (LMKD/Android) fall up to ~40%.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:03Memory page pooling limits
- 6:25Motivation for auto refill
- 11:43Shrinkers and memory pools
- 14:112 MB block mappings in ARM64
- 17:01Refill thread priorities
- 18:06Pool fill and low watermarks
- 19:51Qualcomm DMA buffer system
- 22:23Performance gains and latency
- 24:56Pros and cons of auto refill
- 27:01Use cases for memory pooling
- 28:47Software-only improvements and future
- 33:21Q&A: Upstreaming plans
- 34:51Q&A: Generic memory frameworks
- 36:43Q&A: Linux MM upstreaming
related talks
30mMemory tiering
43mLive in a world with multiple memory types
22mEMD: Fair and Efficient Dynamic Memory De-bloating of Transparent Huge Pages
30mdrm and cgroup memory management - two great tastes
38mDeferred Memblocks Init for Boot Time Reduction
13mEnabling DDR segments on demand during memory pressure for DDR power reduction
29mHigh memory management API changes
48mPersistent Memory Usage within Linux Environment
