一句话:指出 NIC DMA 无法缺页导致内存固定或显式 pin/unpin,并提出为网络控制器增加缺页支持。
该论文研究直接网络 I/O 中一个被多租户研究普遍忽视的问题:网络控制器(NIC)的 DMA 不支持缺页。直接 I/O 允许 NIC 向不受信任的软件暴露多个自身实例而无需可信中介,从而便于多租户环境创新;然而 DMA 无法触发缺页,系统只能将整个地址空间固定到物理内存,或在缓冲区被 DMA 前后通过 API 显式 pin/unpin。前者严重损害内存利用率,后者使编程模型复杂化并降低性能。论文标题表明其贡献是为网络控制器提供缺页支持,但给出的摘要未展开具体机制与实验结果;核心目标是消除 DMA 对固定内存或手动 pin/unpin 的强制要求。
Direct network I/O allows network controllers (NICs) to expose multiple instances of themselves, to be used by untrusted software without a trusted intermediary. Direct I/O thus frees researchers from legacy software, fueling studies that innovate in multitenant setups. Such studies, however, overwhelmingly ignore one serious problem: direct memory accesses (DMAs) of NICs disallow page faults, forcing systems to either pin entire address spaces to physical memory and thereby hinder memory utilization, or resort to APIs that pin/unpin memory buffers before/after they are DMAed, which complicates the programming model and hampers performance.
@inproceedings{LesokhinERSGLBA17,
title = {Page Fault Support for Network Controllers},
author = {Ilya Lesokhin and Haggai Eran and Shachar Raindel and Guy Shapiro and Sagi Grimberg and Liran Liss and Muli Ben-Yehuda and Nadav Amit and Dan Tsafrir},
booktitle = {ASPLOS},
year = {2017},
doi = {10.1145/3037697.3037710}
}