问题标签 [mellanox]

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 回答
24 浏览

dpdk - Mlx5_net:无法读取设备计数器:没有这样的文件或目录

我正在尝试使用 Mellanox ConnectX-6 运行 dpdk 应用程序并收到标题中所述的错误。

0 投票
1 回答
77 浏览

kubernetes - mlx5_core 0000:b5:00.0: mlx5_cmd_check:772:(pid 5271): CREATE_SQ(0x904) op_mod(0x0) 失败,状态参数错误 (0x3),综合症 (0xd61c0b)

使用 sriov 网络创建 pod 时遇到以下问题。当我看到设备驱动程序的输出使用

与硬件通信似乎有些问题。下面列出的系统详细信息:

以下是网络yaml: 在此处输入图像描述

豆荚yaml:

pod创建结果:

之后,当我看到设备驱动程序输出时,遇到了这个问题*mlx5_core 0000:b5:00.0: mlx5_cmd_check:772:(pid 5271): CREATE_SQ(0x904) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0xd61c0b)*.

很高兴获得任何帮助。提前致谢。

0 投票
2 回答
77 浏览

dpdk - 分段数据包的 Rss 哈希

我正在使用 Mellanox Technologies MT27800 系列 [ConnectX-5],使用 dpdk 多 rx 队列和 rss "ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP"

我分析流量并需要同一会话的所有数据包到达同一进程(会话现在可以是 ip+port)

所以具有相同 ip + 端口的数据包到达同一个队列。

但是如果某些数据包是 ip 分片的,数据包会到达不同的进程。这是一个问题!

我如何计算 c++ 代码中的哈希值,就像在卡中完成的那样,所以我可以重新组装数据包并将它们发送到同一个进程,就像非碎片数据包一样

0 投票
1 回答
58 浏览

dpdk - 完全缓存 linux 导致 nic 掉线

我有一个 dpdk 19 应用程序,并从 nic(MT27800 Family [ConnectX-5] 100G) 读取 32 rx multiqueue with RSS 。

所以有 32 个进程使用 dpdk 从 nic 接收流量,每个进程从不同的 Queue 读取,从 mbuf 复制数据到分配的内存,累积到 6MB 并通过无锁队列发送到另一个线程,其他线程只写数据到磁盘。结果 I/O 写入缓存在 linux 内存中。

所有进程都以cpu亲和力运行,grub中有isolcpus

这是从队列中读取的 32 个进程中的每一个中发生的一些伪代码,我不能放真正的代码,它太多了

当服务器内存完全缓存时(我知道它仍然可用),我开始看到 nic 下降。

如果我每分钟从磁盘中删除数据,缓存的内存就会被释放,并且在 nic 上不会丢失。因此,水滴显然与缓存的数据相关联。在第一次下降之前,应用程序可以在没有下降的情况下运行 2 小时。该进程不使用太多内存,每个进程为 500 MB。

我怎样才能避免在 nic 滴水?

我使用 Centos 9.7 linux 3.10.0-1160.49.1.el7.x86_64。

0 投票
0 回答
25 浏览

dpdk - 使用 dpdk 19 mellanox connectx5 进行软锁定

我有 centos 7.9 3.10.0-1160.53.1.el7.x86_64 的服务器

运行我的 dpdk 19 多进程应用程序时,我有软锁定

我运行的服务器有 2 个 ixgbe 10G 和一个 100G connectx-5

如果 dpdk 不使用 mellanox 卡,则不会发生软锁定

如果 dpdk 不使用多进程(没有 -l 1-62),则不会发生软锁定

从 10G 丢弃所有数据包(Rx imissed)

来自 dmesg 的日志

0 投票
1 回答
18 浏览

dpdk - Connectx-6 LX 计划发送仅发送 25 个数据包

我们正在尝试在 Connectx-6 LX 上使用发送调度。如果我们没有在数据包缓冲区上设置时间戳,并在大约正确的时间手动发送每个数据包,那么一切正常。但是,如果我们在缓冲区中设置时间戳,则发送前 25 个数据包并在预期时间接收数据包,但所有后续调用都rte_eth_tx_burst返回 0。如果相关,我们将在每个突发中发送一个数据包,时间戳相距 125 us。

我们尝试将时间戳设置为较低的值,并且数据包被正确传输,并且按预期tx_pp_timestamp_past_errors值增加了。我们还设置了较高的值,这也适用于tx_pp_timestamp_future_errors递增。

任何想法从哪里开始调试?我看不到任何会给出rte_eth_tx_burst失败错误代码的 API。

我们在 Ubuntu 20.04 上使用 DPDK 21.08 和 5.4.3.1 Mellanox 驱动程序。

0 投票
1 回答
49 浏览

nvidia - 启用 jumbo、scatter 和 multi segs 时 ConnectX-5 DPDK 性能下降

我用的是ConnectX-5网卡。
我有一个DPDK我想要支持的应用程序jumbo packets
为此,我添加了 rx 卸载功能:DEV_RX_OFFLOAD_JUMBO_FRAMEDEV_RX_OFFLOAD_SCATTER
tx 卸载功能:DEV_TX_OFFLOAD_MULTI_SEGS
我还将其设置得max_rx_pkt_len更高,因此它将接受巨型数据包(9k)。
我注意到添加这些卸载功能+增加max_rx_pkt_len危害性能。
例如,没有这些卸载标志,我可以重定向80Gbps大小为 512 的数据包而不会丢失任何内容。
使用这些标志减少到~55Gbps没有损失。
我正在使用DPDK 19.11.6.
目前在这个测试中我不发送巨型数据包。我只是想了解它如何影响平均数据包大小。

这是预期的吗?使用这些卸载标志会降低性能吗?
谢谢

- 编辑 -

端口配置:

- - 更多信息 -

0 投票
1 回答
32 浏览

dpdk - ip over gre 数据包的 RSS 哈希

我正在使用 Mellanox Technologies MT27800 系列 [ConnectX-5],使用 dpdk 多 rx 队列和 rss "ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP"

我收到带有 ETH:IP:GRE:ETH: IP:UDP的数据包

我希望负载平衡根据内部ip+port而不是 gre ip

我尝试将 ETH_RSS_LEVEL_INNERMOST 添加到 rss_hf 但我收到关于 rss 无效值 0x800000003afbc 应为 0xf00000000003afbc 的错误

我正在使用 dpdk 21.11.0 - 是否可以这样做以及如何做?如果不是我该怎么做。

dpdk 19.11 也支持吗?