0
线程/进程将在传递给post_send()的数据中包含MR rkey,并使用MR lkey配置sge列表以进行传输。对本地和远程仅使用相同的内存区域进行测试
我在玩infiniband HW,想检查MR是否使用lkey和rkey通过本地发送和接收RDMA的同一线程是合法的。
线程/进程将在传递给post_send()的数据中包含MR rkey,并使用MR lkey配置sge列表以进行传输。对本地和远程仅使用相同的内存区域进行测试
我在玩infiniband HW,想检查MR是否使用lkey和rkey通过本地发送和接收RDMA的同一线程是合法的。
我不确定我是否理解这个问题,但是对于本地请求使用同一个MR的L_Key和R_Key是完全可以的。如果使用重叠内存作为发送和接收工作请求的重复内存,例如从地址X获取的100个字节的RDMA WRITE写入地址X + 50,则可能会得到奇怪的结果。同样,如果有多个工作请求正在覆盖另一个使用相同的内存将导致混淆结果。
但是,从本地地址X到本地地址X + 200(其中这些地址在同一个内存区域中)执行RDMA WRITE(100字节)是完全正确的 - 您只是将RDMA适配器用作花式本地DMA引擎。