You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用ConnectX-5网卡RDMA Write的Coalesced Acknowledge Messages?

禁用ConnectX-5网卡RDMA Write的合并确认(Coalesced Acknowledge)方法

针对ConnectX-5网卡,你可以通过修改硬件寄存器的方式禁用RDMA Write的ACK合并,实现每个Write请求对应唯一响应包。以下是具体操作步骤:

方法一:使用mstmcra直接修改寄存器

  1. 找到网卡的MST设备路径
    运行以下命令查看可用的MST设备:

    mst status
    

    输出会类似/dev/mst/mt4119_pciconf0,这就是你的ConnectX-5对应的设备路径。

  2. 全局禁用ACK合并
    执行以下命令修改ROCE_ACK_COALESCE_CTRL寄存器(地址0x10058),直接关闭所有RoCE流量的ACK合并:

    mstmcra /dev/mst/mt4119_pciconf0 0x10058 0x0
    

    该寄存器的0x0值表示完全禁用ACK合并,此时每个RDMA请求(包括Write)都会触发独立的确认包。

  3. (可选)仅限制Write的ACK合并数量
    如果你想保留其他RDMA操作的合并功能,仅让Write请求单独返回ACK,可以修改ROCE_ACK_COALESCE_MAX_CNT寄存器(地址0x1005C)为1:

    mstmcra /dev/mst/mt4119_pciconf0 0x1005C 0x1
    

    这个设置会让网卡最多合并1个ACK,等效于每个请求单独返回确认。

方法二:使用mlxconfig配置(更直观)

mlxconfig是Mellanox提供的专用配置工具,操作更易读:

  1. 查看当前ACK合并配置
    mlxconfig -d /dev/mst/mt4119_pciconf0 q | grep ROCE_ACK
    
  2. 禁用全局ACK合并
    mlxconfig -d /dev/mst/mt4119_pciconf0 set ROCE_ACK_COALESCE=0
    

生效方式

修改完成后,需要重启网卡或系统使设置生效:

  • 重启网卡示例(假设网卡接口为eth0):
    ifdown eth0 && ifup eth0
    
  • 或者使用mlxlink重置网卡:
    mlxlink -d /dev/mst/mt4119_pciconf0 reset
    

验证方法

修改后可以通过抓包工具(如tcpdump、Wireshark)捕获RoCE流量,检查每个RDMA Write请求是否对应一个独立的ACK包,确认设置生效。

内容的提问来源于stack exchange,提问作者zhmayusi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:50:16