问题标签 [rdma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
172 浏览

linux - rping 服务器在移植内核中崩溃

我已经安装了Soft-RoCE ,并且在Kernel 3.0.0+中使用“rping”成功确保了两个节点之间的 rdma 连接。

我需要在内核 4.0.4中做同样的事情。我已将“ rxe 驱动程序(/driver/infiniband/hw/rxe)”从 3.0.0+ 复制到内核 4.0.4。我已经应用了小补丁,以便 rxe 在 4.0.4 中保持良好状态。

移植后,在 4.0.4 中,当客户端尝试与rping 服务器连接时,它会崩溃。服务器似乎正在运行...我得到了 dmesg 的崩溃报告。

ibv_devices, ibv_devinfo 产生输出。

请帮我解决这个问题的步骤

以下是崩溃报告

0 投票
1 回答
448 浏览

c - rdma 连接管理器驱动模式

我正在为我的应用程序使用 Infiniband 驱动程序的 OFED 3.18r2 实现。特别是我正在使用 rdma 连接管理器包装函数。为了更好地了解幕后发生的事情,我习惯于查看源代码。这样做我遇到了一些看起来像模式但我无法理解的东西。让我们举个例子。rdma 连接管理器函数在 cma.c 中。以 rdma_listen 调用为例(这对于库中定义的几乎所有以“rdma_”开头的函数都很常见):

在这里你可以看到我之前提到的模式:

write 调用的第一个参数是与/dev/infiniband/rdma_cm关联的文件描述符,但我无法理解cmd参数的用法。我深入研究了源代码,却发现cmd是一个用于 rdma cm 函数调用的 ABI 定义的结构。我真的不明白这是否是执行设备驱动程序调用的常见模式以及它是如何工作的,与 cmd 参数关联的真实代码在哪里。请你帮助我好吗?

0 投票
1 回答
1234 浏览

rdma - 启动opensm时出错

我正在softRoCE之上开发Accelio。

因此检查了 opensm 状态 - # /etc/init.d/opensmd status opensm is stopped # /etc/init.d/opensmd start opensm start [FAILED]

我会很感激一些指示,这样我就可以理解我哪里出错了。

0 投票
1 回答
133 浏览

infiniband - 如何从 Infiniband 动词函数中获取错误信息?

特别是,我想知道为什么 ibv_create_qp 会失败。当它返回 NULL 时,表明它失败了,有没有办法准确找出问题所在?

0 投票
1 回答
588 浏览

infiniband - RDMA 程序随机挂起

有人使用 RDMA_CM 库进行过 RDMA 编程吗?

我很难找到即使是简单的例子来研究。librdmacm 中有一个 rdma_client 和 rdma_server 示例,但它不会在循环中运行(rping 会循环,但它是直接使用 IB 动词而不是 rdma_cm 函数编写的)。

我已经编写了一个简单的乒乓球程序,但它在 1-100 次反弹后锁定在任何地方。我发现在客户端内添加睡眠会使其在挂起之前工作更长时间,这表明存在竞争条件。

客户端卡在 rdma_get_send_comp() 中,服务器卡在 rdma_get_recv_comp() 中。

我有限的理解是,在每个 rdma_post_send() 之前,您需要发出一个 rdma_post_recv() 将在发送之后发出。同样在每次发送之前(第一个客户端发送除外),您需要等待一条消息(rdma_get_recv()),表明对方已准备好接收。

有什么问题?

0 投票
0 回答
268 浏览

rdma - 无法通过 RDMA 发送流量

我在 SUSE Linux SP11 上安装了 softROCE。我正在尝试验证 RXE 设备上的流量。我能够使用ibv_*_pingpong. 但是对于 rping 它是给和错误RDMA_CM_EVENT_UNREACHABLE, error -110的。

0 投票
1 回答
734 浏览

infiniband - libibverbs 你好世界

我正在尝试找到一个使用 Infiniband 和 libibverbs 的简短“Hello World”示例。是一个很好的方向,但是在终端中写入“Hello World”应该可以在不到 800 行的时间内完成。我希望有这样的事情

0 投票
1 回答
458 浏览

linux-kernel - 为什么在 linux 上禁用 IRQ 会导致 rdma_read 和 rdma_write 失败?

我有两台通过 Mellanox infiniband HCA 连接的主机。我正在执行一个简单的 RDMA 应用程序,以从另一台机器(服务器)上的一台机器(客户端)执行 RDMA 写入和 RDMA 读取操作。为了了解每台机器上哪些中断与 HCA 卡有关,我运行了以下命令:

在服务器机器上,我试验过__disable_irq()在这 4 个中断上使用该函数会导致客户端执行的所有 RDMA 读/写操作失败,并显示错误消息“传输重试计数器超出”。

我的问题是为什么以及何时 RDMA 读/写操作可以在远程机器上生成 irqs?我认为如果他们不涉及远程 CPU,那么他们将不会执行任何类型的 IRQ。

那么,为什么禁用这些中断会导致这些操作失败呢?

0 投票
2 回答
674 浏览

c - 当远程内存缓冲区被操作系统取消固定时,RDMA WRITE/READ 的行为如何?

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

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

0 投票
1 回答
368 浏览

infiniband - RDMA WRITE:ibv_wc.byte_len 与我尝试写入的内容不匹配

我是在 Mellanox Infiniband 硬件上玩 RDMA 的 Infiniband/RDMA 新手。我在这里使用了源代码。乍一看,程序运行很正常:服务器使用 RDMA_WRITE 操作将一些字节写入客户端内存。但是,我后来发现,写入完成结构(ibv_wc)表示的传输字节数与我放入ibv_send_wr结构的数据量不匹配。这是 rdma_write() 中 ibv_send_wr 初始化的代码:

然后我在写完成队列中得到一个写完成条目后读取 ibv_wc.byte_len 。它显示随机数:32537、32743、32533。我假设传输成功,因为 ibv_wc.status 等于 IBV_WC_SUCCESS。我做错什么了吗?