gpt4 book ai didi

networking - 调用 rdma_disconnect() 后同步或异步返回的已发布接收缓冲区

转载 作者:行者123 更新时间:2023-12-04 00:41:41 25 4
gpt4 key购买 nike

调用 rdma_disconnect() 时,我是在 rdma_disconnect() 返回之前获得所有已发布的 recv 工作请求的完成队列事件,还是我应该期望它们在 rdma_disconnect() 返回之后进入?

最佳答案

接收将在 rdma_disconnect() 返回后异步(可能)完成(带有“刷新错误”状态)。正如您从 rdma_disconnect() 的源代码中看到的那样,它所做的只是将 QP 转换为错误状态并向另一端发送断开连接请求。

将 QP 转换为错误状态确实保证所有发布到 QP 的待处理工作请求将以错误状态完成,但修改 QP 操作会立即返回,而无需等待队列耗尽。类似地,rdma_disconnect() 不会等待所有待处理的工作请求完成——事实上,很难看出它是如何做到的,因为 RDMA CM 实际上没有任何方法知道有多少工作请求在排队,让单独查看相关的 CQ 以查看它们何时全部完成。

IB 规范第 1 卷第 10 章详细介绍了工作请求处理,如果您想知道在转换到错误状态时正在处理的请求的极端情况等。

关于networking - 调用 rdma_disconnect() 后同步或异步返回的已发布接收缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com