PageFlex: Flexible and Efficient User-space Delegation of Linux Paging Policies with eBPF (ATC 2025)
一句话总结:用 eBPF 把 Linux page reclamation/prefetching 的策略外置到用户态、保留内核 swap stack,相比 g-swap 应用变慢 <1%,比 userfaultfd 快得多(zero-page fault 1.2 µs vs 5.6 µs),还能用 17 行代码把 Hyperbolic caching、21 行实现 Leap prefetching。
问题
Google g-swap、Meta TMO 等 hyperscaler 已经靠透明把”冷”页 offload 到 zswap/SSD 节省 20–30% 内存,但 Linux 内核的 LRU/MGLRU/read-ahead 策略与 Belady MIN 之间还有 14–37% 的可改进空间(在 1% refault rate 约束下)。新策略(Hyperbolic、LRB、Leap)发表多年没法部署:
- 写到内核要全 fleet rollout,Google 自己也只能月级别推送
- userfaultfd 把所有 page fault 路由到用户态,zero-page fault 从 1.2 µs 涨到 5.6 µs,还要重写整个 swap backend(zswap 共享、cgroup 计费等)
- AIFM/DiLOS 这类 user-level library 要改应用,且即使没 offload 也带来 40% 软件 indirection 慢化
核心方法
只把非性能关键的策略决策(reclamation 选哪些页 evict、prefetching 预测哪些页)外置,保留内核的 page fault handling 和 swap subsystem:
- In-kernel eBPF event handlers:tracepoint 追踪 OnPageAlloc/Free/Fault/Scanned,policy 订阅事件后 eBPF 处理器同步执行(<50 ns/调用)。每页在 page struct 预留 4 byte 给 eBPF 安全读写,免去用户态 hash map lookup
- 简化策略接口:reclamation 用
UpdateWeight(state, accessBit)周期更新每页权重;prefetching 用PredictTrend(page, isHit)。LRU/LFU/Hyperbolic/Belady-MIN 都能套这个模板(17 行 Hyperbolic、33 行 MIN) - 用户态 agent:跑控制环路调阈值,用
process_madvise批量发送 page-in/page-out hint(攒 64 页),通过 cgroup-based “enclave” 与默认内核策略并存 - Region-aware specialization:应用通过 IPC 把不同地址区间绑定到不同 sub-policy(如 KV store 的热/冷 region 用不同 LRU 阈值;GAPBS 顺序遍历区间用 read-ahead,随机 vertex 区间用 LFU)
深度细节回 atc2025-yelam。
关键结果
- Redis + memtier zipf(0.5):PageFlex LRU vs g-swap kernel LRU,应用慢 <0.98%;emulated 4 µs userfaultfd 开销则慢 13.3%
- LFU on synthetic LFU-friendly workload:10% slowdown 下 LFU 41% swap usage vs LRU 20%(2× 内存节省)
- Hyperbolic caching 在 Memcached trace 上比 LRU 多 5% 内存节省
- Leap prefetching strided pattern:refault rate 比 Linux read-ahead 提升 75.4%
- Region-aware specialization:KV store 比 LRU 多 36% 内存节省、GAPBS PageRank 多 6%
- Page-table scan 的 eBPF 开销比纯内核高 17%;user-space madvise 比 kreclaimd 慢 14%(都不在 critical path)
相关
- 相关概念:eBPF、Memory-Tiering、LRU、MGLRU、Prefetching、Userfaultfd
- 同类系统:g-swap、TMO、AIFM
- 同会议:ATC-2025