paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Toasty: Speeding Up Network I/O with Cache-Warm Buffers

Toasty:用缓存热缓冲区加速网络 I/O
ASPLOS Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 22026匹配度 0/10 · 论文研究网络 I/O 中缓存热缓冲与 RX ring 自适应管理,属于系统/网络/运行时内存管理方向,与用户的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析等研究兴趣没有交集。引用 0 inbox
Preeti, Nitish Bhat, Ashwin Kumar, Mythili Vutukuru
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:纯软件 Toasty 通过 LIFO 缓冲池与自适应 RX ring 大小,兼顾缓存热缓冲与突发弹性,吞吐提升最高 78%。

现代网卡通过 DDIO 等机制将包直接 DMA 到 LLC 以降低访问延迟,但当包缓冲区工作集超出 LLC 时会出现 leaky DMA:新包将未处理旧包逐出 LLC,使其需从主存重取。将缓冲池缩小到可驻留缓存虽可缓解,却难以应对突发流量,易导致网卡无缓冲区可用而丢包。Toasty 是纯软件方案,在 AF_XDP 上将包缓冲池组织为 LIFO 栈,并按入包负载与应用处理速率自适应调整填充到网卡 RX ring 的缓冲区数量。稳态复用少量缓存热缓冲区,突发时回退到大缓冲池。评估显示,多种网络功能吞吐较 AF_XDP 默认缓冲池最高提升 78%,性能接近可驻留缓存的小缓冲池,同时更具突发弹性。

问题
NIC 经 DDIO 将包 DMA 到 LLC 可降延迟,但缓冲区工作集超出 LLC 时出现 leaky DMA,旧包被逐出后需从主存重取;缩小缓冲池又会在突发流量下丢包。
方法
Toasty 是纯软件方案,在 AF_XDP 上将包缓冲池实现为 LIFO 栈,并根据入包负载与应用处理速率自适应调整网卡 RX ring 中填充的缓冲区数量,使稳态复用缓存热缓冲区、突发时回退到大缓冲池。
评估
在 AF_XDP 上实现并测试多种网络功能,吞吐较默认缓冲池最高提升 78%,并匹配可驻留缓存的小缓冲池性能,同时更好应对突发流量。
原文摘要(Abstract)

Modern NICs DMA packets directly to the LLC using technologies like DDIO, reducing access latencies for networking applications. Prior work has observed several performance issues with DDIO when the working set of packet buffers does not fit into LLC. For example, the leaky DMA problem arises when incoming packets evict older packets that have not yet been processed by the application from LLC, causing them to be fetched again from main memory. While using a smaller pool of packet buffers that fits in cache is an obvious solution, this may result in the NIC running out of buffers to DMA packets into when a burst of packets arrives. This paper proposes Toasty, a system that mitigates this tradeoff between high throughput and resilience to packet loss that arises when sizing the network packet buffer pool. While prior work has proposed hardware-based solutions to this problem, Toasty is a software-only solution that can be deployed on commodity NIC hardware. Toasty manages the packet buffer pool as a LIFO stack instead of a FIFO queue, and adapts the number of buffers populated into the NIC hardware RX ring based on incoming packet load and application processing rate. Together, these changes enable Toasty to recirculate a small working set of cache-warm buffers in steady state, while falling back to a larger pool of buffers during traffic bursts. We implement Toasty over the AF_XDP kernel bypass framework, and our evaluation shows that Toasty improves network throughput for a variety of network functions by up to 78% over the default buffer pool implementation of AF_XDP. We also show that Toasty matches the performance of a small buffer pool that fits in cache, while being more resilient to traffic bursts.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{PreetiBKV26,
  title = {Toasty: Speeding Up Network I/O with Cache-Warm Buffers},
  author = {Preeti and Nitish Bhat and Ashwin Kumar and Mythili Vutukuru},
  booktitle = {ASPLOS},
  year = {2026},
  doi = {10.1145/3779212.3790235}
}