原文:14. RDMA之Memory Window - 知乎
本文是“RDMA杂谈”专栏文章的第14篇,欢迎转载,转载请注明出处。
我们在Memory Region一文中介绍过Memory Region,它是一片由用户注册的特殊的内存区域:一方面其中的内容不会被换页到硬盘中,另一方面RDMA网卡中记录了它的地址转换关系,使得硬件拿到用户指定在WR中的虚拟地址之后找到对应的物理地址。
本文我们来讲解Memory Window的概念,它是一种基于Memory Region的、更灵活的内存管理单元。除了MW的概念之外,本文也会更详细的介绍一些RDMA领域的内存相关概念,比如L_Key/R_Key等。本文配合Memory Region阅读效果更佳,建议先读者温习一下。
Memory Window是什么
Memory Window简称MW,中文就翻译成内存窗口吧。是一种由用户申请的,用于让远端节点访问本端内存区域的RDMA资源。每个MW都会绑定(称为bind)在一个已经注册的MR上,但是它相比于MR可以提供更灵活的权限控制。MW可以粗略理解为是MR的子集,一个MR上可以划分出很多MW,每个MW都可以设置自己的权限。MW和MR的关系如下图所示:
MR与MW的关系
内存的访问权限控制
为了后文说明为何设计MW,我们先来把MR和MW都涉及的权限控制讲解一下。
MR/MW的权限配置
这里的权限,指的是本端/对端节点,对于本端内存的读/写权限,它们两两组合形成了四种权限:
本端 | 对端 | |
---|---|---|
读 | Local Read | Remote Read |
写</ |