1

让两个 infiniband 进程在两台机器上执行。RDMA当一个进程终止时,它的所有资源(分配的文件、缓冲区等)都会被释放,甚至是进程为WRITE/READ 操作注册的内存。

有人可以参考其他进程上的远程通道适配器如何知道缓冲内存现在是空闲的吗?这个控制 infiniband 堆栈的哪个元素以及何时控制?

4

2 回答 2

2

当 Linux 进程终止时,其所有打开的文件描述符都将关闭。使用 RDMA 的进程将有一个与 ib_uverbs 模块连接的打开设备文件。当该文件描述符关闭时,模块会清理进程打开的每个打开的 RDMA 资源,包括任何内存区域和队列对。此清理包括通知 HCA 的驱动程序并通过它通知设备本身。

如果远程机器继续尝试执行 RDMA 操作,HCA 将拒绝其请求,因为相关资源将被关闭。

于 2015-09-25T11:36:16.423 回答
0

当一个连接的对等体退出而没有发送断开连接时,IB 核心启动一个清理过程,如果它是 RC QP,它还会向另一个 RNIC 发送一个 RDMA DISCONNECT MAD 数据包。在看到断开连接时,另一端 RNIC 清理它的 SQ/RQ 和其他东西

于 2020-02-20T05:14:51.547 回答