IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【verbs】ibv_reg_mr() -> 正文阅读

[游戏开发]【verbs】ibv_reg_mr()

描述


ibv_reg_mr() 注册一个与保护域(pd)关联的内存区域 (MR)。通过这样做,允许 RDMA 设备向该内存读取和写入数据。执行此注册需要一些时间,因此当需要快速响应时,不建议在数据路径中执行内存注册。
每次成功注册都会产生一个具有唯一(在特定 RDMA 设备内)lkey 和 rkey 值的 MR。
MR 的起始地址是 addr,它的大小是 length。可以注册的块的最大大小限制为 device_attr.max_mr_size。调用它的进程空间中每个的虚拟内存地址都可以注册,包括但不限于:
本地内存(变量或数组)
全局内存(变量或数组)
动态分配的内存(使用 malloc() 或 mmap())
共享内存

来自text segment的地址

注册的内存缓冲区不必是页面对齐的。没有任何方法可以知道可以为特定设备注册的内存总大小是多少。
参数 access 描述了 RDMA 设备所需的内存访问属性。它是 0 或以下一个或多个标志的按位或:

V_ACCESS_LOCAL_WRITEEnable Local Write Access: Memory Region can be used in Receive Requests or in?IBV_WR_ATOMIC_CMP_AND_SWP?orIBV_WR_ATOMIC_FETCH_AND_ADD?to write locally the remote content value
IBV_ACCESS_REMOTE_WRITEEnable Remote Write Access: Memory Region can be access from remote context using?IBV_WR_RDMA_WRITE?orIBV_WR_RDMA_WRITE_WITH_IMM
IBV_ACCESS_REMOTE_READEnable Remote Read Access: Memory Region can be access from remote context using?IBV_WR_RDMA_READ
IBV_ACCESS_REMOTE_ATOMICEnable Remote Atomic Operation Access (if supported): Memory Region can be access from remote context using?IBV_WR_ATOMIC_CMP_AND_SWP?orIBV_WR_ATOMIC_FETCH_AND_ADD
IBV_ACCESS_MW_BINDEnable Memory Window Binding

如果设置了 IBV_ACCESS_REMOTE_WRITE 或 IBV_ACCESS_REMOTE_ATOMIC,则也必须设置 IBV_ACCESS_LOCAL_WRITE,因为只有在允许本地写入时才允许远程写入。
MR 始终启用本地读取访问,即可以使用 IBV_WR_SEND、IBV_WR_SEND_WITH_IMM、IBV_WR_RDMA_WRITE、IBV_WR_RDMA_WRITE_WITH_IMM 在本地读取内存区域。
内存注册请求的权限可以是该内存块的操作系统权限的全部或子集。例如:只读内存不能注册有写权限(本地或远程)。
一个特定的进程可以注册一个或多个内存区域。

参数

NameDirectionDescription
pdinProtection Domain that was returned from?ibv_alloc_pd()
addrinThe start address of the virtual contiguous memory block
lengthinSize of the memory block to register, in bytes. This value must be at least 1 and less than?dev_cap.max_mr_size
accessinRequested access permissions for the memory region

返回值

ValueDescription
MRPointer to the newly allocated Memory Region.
This pointer also contains the following fields:
lkeyThe value that will be used to refer to this MR using a local access
rkeyThe value that will be used to refer to this MR using a remote access

Those values may be equal, but this isn't always guaranteed.

NULLOn failure,?errno?indicates the failure reason:
EINVALInvalid?access?value
ENOMEMNot enough resources (either in operating system or in RDMA device) to complete this operation

Examples

Register a MR to allow only local read and write access and deregister it:

struct ibv_pd *pd;
struct ibv_mr *mr;
?
mr = ibv_reg_mr(pd, buf, size, IBV_ACCESS_LOCAL_WRITE);
if (!mr) {
	fprintf(stderr, "Error, ibv_reg_mr() failed\n");
	return -1;
}
?
if (ibv_dereg_mr(mr)) {
	fprintf(stderr, "Error, ibv_dereg_mr() failed\n");
	return -1;
}

Register a MR to allow Remote read and write to it:

mr = ibv_reg_mr(pd, buf, size, IBV_ACCESS_LOCAL_WRITE |
		IBV_ACCESS_REMOTE_WRITE | IBV_ACCESS_REMOTE_READ);
if (!mr) {
	fprintf(stderr, "Error, ibv_reg_mr() failed\n");
	return -1;
}

原文:https://www.rdmamojo.com/2012/09/07/ibv_reg_mr/

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 11:09:07  更:2021-09-07 11:09:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/21 20:28:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码