Notes about RDMA UMR(User-Mode Memory Registration)
本文将mark下RDMA UMR(User-Mode Memory Registration)机制相关notes。
What
User-Mode Memory Registration (UMR) supports the creation of memory keys for non-contiguous memory regions. This includes the concatenation(连接) of arbitrary contiguous regions of memory, as well as regions with regular structure.
Examples
Three examples of non-contiguous regions of memory that are used to form new contiguous regions of memory are described below.
将多块非连续的MR拼接成一个VA连续的MR
如上图所示,我们之前创建了3个常规的MR:MR1(green), MR2(purple), MR3(red),现在我们想从这三个MR中各抽取一部分拼接起来形成一个新的连续的MR:第一块是MR1(v0-v1)部分,第二块是MR2(v2-v3)部分,第三块是MR3(v4-v5)部分。这个新的MR有一个新的base VA地址,长度是3个小块的长度之和。这样虽然内部是不连续的,但在外部访问者看来这个MR是连续的。
将一个MR内有规律非连续的块拼接成一个连续的MR
如上图所示,当我们做一个矩阵的转置时,需要把一列的元素拼成新的行,这个行就成了新的连续的MR。
将多个MR拼接成新的相互交织的连续MR
如上图所示,2个老矩阵的列相互交织形成新的列,这是一个新的VA连续的MR,它有自己新的base address和length。
思考
UMR会创建新的memory keys、VA(Virtual Address)地址和MTT entries;在MTT entry中,保证新的VA地址指向目标PA(Physical Address)即可。
参考资料: