问题标签 [infiniband]

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 投票
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 回答
440 浏览

operating-system - mellanox 中断 mlx4-async@pci:0000 ... 是什么意思?

我在[ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE]ubuntu 3.13.0 上使用带有 OFED 版本 4-1.0.0 的 InfiniBand Mellanox 卡,该卡在具有 4 个内核的 x86_64 计算机上运行。

这是ibstat我电脑上的结果

我的/proc/interrupts样子是这样的:

我读到每个mlx4_0-x中断都与每个 CPU 相关联。我的问题是:第一个中断是什么mlx4-async@pci:0000:01:00.0意思?我实验当opensm守护进程尚未运行时,此中断每 5 分钟发生一次。

0 投票
1 回答
66 浏览

infiniband - Mellanox 司机需要合同吗?

我有一个用于 ESXi 实验室的小型 Mellanox SAN。我一直在上面运行 ESXi 5.1,所以我决定尝试 5.5 和 6.0 来获得经验。当我在http://www.mellanox.com/page/products_dyn?product_family=36上找到驱动程序时,它说:

注意:要获取 ESXi 5.X v1.8.2.4 的驱动程序,请联系 support@mellanox.com。

所以,我联系了支持,得到了这个回复:

根据我们的记录,我们无法为您找到任何有效的合同。

如果没有非商业目的的支持合同,如何合法地获得驱动程序?

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。我做错什么了吗?

0 投票
2 回答
1595 浏览

java - RDMA (JSOR) 上的 Java 套接字与 Infiniband 中的 jVerbs 性能

我对 JSOR 和 jVerbs 都有基本的了解。

两者都处理 JNI 的限制并使用快速路径来减少延迟。它们都使用用户动词 RDMA 接口来避免上下文切换并提供快速路径访问。两者都具有零拷贝传输选项。

不同的是,JSOR 仍然使用 Java Socket 接口。jVerbs 提供了一个新的接口。jVerbs 还有一个叫做 Stateful Verbs Call 的东西来避免 RDMA 请求的重复序列化,他们说这可以减少延迟。jVerbs 提供了更原生的接口,应用程序可以直接使用这些接口。我阅读了 jVerbs SoCC 2013 论文,他们在 jVerbs 之上构建了 jverbsRPC,并表明它显着减少了 zookeeper 和 memcache 操作的延迟。

两者的文档都表明它们比基于 TCP/IP、SDP 和 IPoIB 的常规 Java 套接字执行得更好。

我没有 JSOR 和 jVerbs 之间的任何性能比较。我认为 jVerbs 可能比 JSOR 表现更好。但是,使用 JSOR,我不必更改现有代码,因为它仍然使用相同的 java 套接字接口。我的问题是,相对于 JSOR,使用 jVerbs 的性能增益可能是多少。有没有人知道或有处理这两者的经验?如果您有任何比较数据,那就太好了。我找不到任何东西。

0 投票
1 回答
855 浏览

api - 什么是标签匹配接口?

听说 PSM 是一个支持标签匹配的库。什么是标签匹配接口?为什么标签匹配对 MPI 环境中的性能很重要?

0 投票
1 回答
67 浏览

linux - 我需要构建什么来直接访问 InfiniBand HCA 端口并注入 IPoIB 帧位?

我想检索结构上所有 IPoIB 帧的 IPoIB 帧位,无论它们是否注定(LID + QPN 级别)用于我的机器。

此外,我应该能够将修改后的 IPoIB 帧直接从 linux 内核重新注入到 InfiniBand HCA 端口。

所以为了实现这一点,我需要构建一个单独的内核模块IPoIB 驱动程序IPoIB 网络接口

注意:我刚刚开始为我的项目学习 Linux 内核模块开发。如果这不是发布此问题的合适位置,我很抱歉。

0 投票
0 回答
77 浏览

c - 如何将我的 linux 内核模块绑定到 InfiniBand HCA 端口以通过此模块发送和接收消息?

我希望我的内核模块绑定到 InfiniBand 端口,然后向子网管理员注册,以便将来进行查询、发送、接收等操作。

我在网上搜索过,但不幸的是,关于它的信息很少。

目前,我指的是IPoIB 实现,但它似乎有很多与我的内核模块无关的结构和功能。

因此,我正在寻找将我的模块注册到 InfiniBand SA 的简约和优化步骤。

0 投票
0 回答
57 浏览

interrupt - mlnx-ofed-kernel-3.1 中断处理程序中的“MLX4_EVENT_TYPE_COMP”和“MLX4_EVENT_TYPE_CMD”的用途是什么?

我在linux 内核版本 3.13.0 上使用mellanox Infiniband card MT26428 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE]with 。mlnx-ofed-kernel-3.1

当卡连接到另一张卡并进行配置时(ibstat 表示两张卡都在 infiniband 链路层处于活动状态),我实验卡每 9 秒发送 8 次中断,包括 4 对事件类型MLX4_EVENT_TYPE_COMPMLX4_EVENT_TYPE_CMD.

我还注意到,如果我修改函数 mlx4_interrupt 代码(它是 mlnx-ofed-kernel-3.1 中的中断处理程序)以避免它处理这两个中断事件,则完成队列会立即销毁,这会直接导致进一步的数据传输infiniband 卡失败。

我的问题是这些中断事件的目的是什么MLX4_EVENT_TYPE_COMPMLX4_EVENT_TYPE_CMD为什么它们必须保持队列对可用?

以下是 drivers/net/ethernet/mellanox/mlx4/eq.c 中每个中断事件调用的代码

MLX4_EVENT_TYPE_COMP

MLX4_EVENT_TYPE_CMD