问题标签 [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 投票
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 投票
0 回答
280 浏览

iscsi - 已在 targetcliiser enable 中使用的地址

请帮我解决这个问题 我正在使用“targetcli-2.0rc1” 我已经创建了 IP 地址为 192.168.1.11 和端口号的门户:3260 当我正在执行“iser_enable”时,它会引发以下错误

/iscsi/iqn.20...168.1.11:3260> iser_enable Traceback(最近一次调用最后):

文件“/usr/lib/python2.7/dist-packages/configshell/shell.py”,第 983 行,在 run_interactive self._cli_loop()

文件“/usr/lib/python2.7/dist-packages/configshell/shell.py”,第 806 行,在 _cli_loop self.run_cmdline(cmdline)

文件“/usr/lib/python2.7/dist-packages/configshell/shell.py”,第 927 行,在 run_cmdline self._execute_command(path, command, pparams, kparams)

文件“/usr/lib/python2.7/dist-packages/configshell/shell.py”,第 902 行,在 _execute_command 结果 = target.execute_command(command, pparams, kparams)

文件“/usr/lib/python2.7/dist-packages/targetcli/ui_node.py”,第 216 行,在 execute_command 返回 UINode.execute_command(self, command, pparams, kparams)

文件“/usr/lib/python2.7/dist-packages/targetcli/ui_node.py”,第 101 行,在 execute_command pparams, kparams)

文件“/usr/lib/python2.7/dist-packages/configshell/node.py”,第 1405 行,在 execute_command result = method(*pparams, **kparams)

文件“/usr/lib/python2.7/dist-packages/targetcli/ui_target.py”,第 1042 行,在 ui_command_iser_enable self.portal._set_iser_attr(True)

文件“/usr/lib/python2.7/dist-packages/rtslib/target.py”,第 870 行,在 _set_iser_attr fwrite(path, "1")

文件“/usr/lib/python2.7/dist-packages/rtslib/utils.py”,第 106 行,在 fwrite file_fd.close() 中

IOError:[Errno 98] 地址已在使用中

当我使用 Soft-RoCE 时,iser_enable 没有问题......当我尝试使用 Soft-iWarp 时,我遇到了上述问题

我的 ibv_devices o/p 如下

根@VCHN145:~# ibv_devices

根@VCHN145:~#

请帮我解决这个问题

0 投票
3 回答
552 浏览

caching - Are one-sided RDMA reads atomic for single cache lines?

My group (a project called Isis2) is experimenting with RDMA. We're puzzled by the lack of documentation for the atomicity guarantees of one-sided RDMA reads. I've spent the past hour and a half hunting for any kind of information at all on this to no avail. This includes close reading of the blog at rdmamojo.com, famous for having answers to every RDMA question...

In the case we are focused on, we want to have writers doing atomic writes for objects that will always fit within a single cache line. Say this happens on machine A. Then we plan to have a one-sided atomic RDMA reader on machine B, who might read chunks of memory from A, spanning many of these objects (but again, no object would ever be written non-atomically, and all will fit within some single cache line). So B reads X, Y and Z, and each of those objects lives in one cache line on A, and was written with atomic writes.

Thus the atomic writes will be local, but the RDMA reads will arrive from remote machines and are done with no local CPU involvement.

Are our one-sided reads "semantically equivalent" to atomic local reads despite being initiated on the remote machine? (I suspect so: otherwise, one-sided RDMA reads would be useless for data that is ever modified...). And where are the "rules" documented?

0 投票
1 回答
824 浏览

c++ - 当 RDMA 在映射区域上运行时会发生什么?

RDMA 是绕过应用程序和操作系统内核之间无用数据副本的有效方法。Mmap 是一种处理大文件的有效方法,就好像它只是一个字节数组一样。

我正在通过 Infiniband 使用 MPI,它支持进程之间的 RDMA 网络操作。每个 MPI 进程都有一个非常大的文件要与其他人共享。

每个 MPI 进程可以在每个大文件上创建 mmap 区域并与其他人共享吗?我想让每个进程读取任何进程的任何文件,就好像它通过 RDMA(MPI 的单向通信)读取它们的内存一样。

据我所知,当应用程序调用 RDMA 操作时,它会直接将“虚拟内存地址”传递给 NIC。NIC 将处理从虚拟内存地址到其物理内存地址的转换。如果 RDMA 驱动程序在向 NIC 发出请求之前固定兴趣页面,我认为它会起作用。有没有人有这方面的经验?:D

谢谢

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

0 投票
1 回答
976 浏览

memory - RDMA 和 DMA 有什么区别?

我担心直接内存访问 (DMA) 中涉及的硬件组件。我读到要使 DMA 工作,需要 DMA 控制器,但是我没有发现 RDMA(远程 DMA)操作中是否涉及相同的组件,例如 RDMA READ 和 RDMA WRITE。这就是为什么我要问 DMA 和 RDMA 有什么区别?

0 投票
2 回答
3113 浏览

linux-kernel - 无法使用 ib_create_qp 创建队列对

我正在编写一个 RDMA (InfiniBand) 内核模块。

到目前为止,我已经成功创建了保护域、发送和接收队列的完成队列。

但是,每当我尝试通过调用 ib_create_qp 创建队列对时,都无法创建队列对。我写的代码如下所示:

此处所有查询都有效,但ib_create_qp(mypd,&init_qpattr);无法创建队列对的查询除外。

更新:在创建队列对之前注册内存。但它仍然显示 ib_create_qp 的无效参数错误(错误代码 -22)

0 投票
1 回答
493 浏览

infiniband - Infiniband 和 RDMA 的区别

linux命令的手册页ibstatibv_devinfo

在这种情况下, Infiniband 设备RDMA 设备有什么区别?在什么情况下,这两个命令的输出是否不同(即它们在设备输出列表中不同)?

0 投票
3 回答
254 浏览

rdma - 是否可以仅在客户端实现 RDMA (RoCE) 而无需担心服务器 RDMA 支持?

我需要使用 RDMA 减少 Windows 应用程序的延迟,但我只能控制通信的一侧,RDMA(内核绕过)实现与另一侧无关。

是否可以仅在客户端实现 RDMA (RoCE) 而无需担心服务器 RDMA 支持?

0 投票
1 回答
581 浏览

linux-kernel - 是否可以在内核模块中使用 RDMA Mellanox 库?

我想开发一个能够发送/接收 RDMA 消息的内核模块。我想知道是否可以从内核空间调用 Mellanox 库。

我可以从内核模块调用 Mellanox RDMA 函数吗?

答:我这里有一些工作代码:https ://github.com/jcarreira/disag-firebox