找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 42836|回复: 247

[虚拟机相关] 开启RTL8125B的多队列支持和关闭ASPM。PVE 下J4125 测试有效

 火.. [复制链接]
发表于 2021-12-14 09:56 | 显示全部楼层 |阅读模式
本帖最后由 dominic 于 2022-12-30 13:27 编辑


2022-12-30更新:从9.008代码开始realtek 发布的代码又关闭了RSS功能,
r8125_n.c 代码以下代码片段确定了EnableRss 为0,也就是关闭了RSS功能。所以最后效果是1个rx队列 2个tx队列了,HwSuppNumTxQueues还是2

#ifndef ENABLE_LIB_SUPPORT
        switch (tp->mcfg) {
        case CFG_METHOD_4:
        case CFG_METHOD_5:
        case CFG_METHOD_7:
                if (tp->HwSuppIsrVer == 2) {
                        tp->RequireRduNonStopPatch = 1;
                        tp->EnableRss = 0;
                }
                break;
        }
#endif

ENABLE_LIB_SUPPORT 如果设置为y的话,源代码中却有缺少r8125_lib.h和r8125_lib.c文件。只能凑合用用吧。
========================

RTL8125B是realtek作为PC上使用的2.5G网卡芯片,2020年和 2021年,这芯片作为好多软路由设备或者轻NAS设备板载芯片很受欢迎。
realtek官方发布了r8125 驱动,最新版本是9.007.01,很可惜官方驱动默认关闭了RSS(rx 的多队列支持,)也关闭了TX的多队列。
RTL8125B硬件上设计是支持32个队列的,这个可以通过lspci -vv | grep MSI-X确认,观察/proc/interrupts 可以发现每块网卡都有32个队列,只有0和16号对了有数据而且都集中在cpu0上,这是典型的单队列运行模式
刚开始的时候我通过脚本来手动调整几块网卡的软中断分配到几个cpu核心上,前些时候处理ikuai 端口断开再连接的毛病的时候仔细看了一下官方驱动。驱动代码是支持RSS和TX驱动的,而且代码中对于RX使用4个队列
TX使用2个队列, 参见r8125_n.c中rtl8125_init_software_variable函数。
  1. switch (tp->mcfg) {
  2.         case CFG_METHOD_4:
  3.         case CFG_METHOD_5:
  4.         case CFG_METHOD_7:
  5.                 tp->HwSuppNumTxQueues = 2;
  6.                 tp->HwSuppNumRxQueues = 4;
  7.                 break;
  8.         default:
  9.                 tp->HwSuppNumTxQueues = 1;
  10.                 tp->HwSuppNumRxQueues = 1;
  11.                 break;
  12.         }
复制代码


这样就简单了,只需要更改官方代码的src目录下Makefile文件 再编译驱动就好了,Makefile中找到ENABLE_MULTIPLE_TX_QUEUE和 ENABLE_RSS_SUPPORT 后面更改为y就好
ENABLE_MULTIPLE_TX_QUEUE = y
ENABLE_RSS_SUPPORT = y

如果要同时关闭ASPM,修改CONFIG_ASPM 就好
CONFIG_ASPM = n

这样使用RTL8125B作为软路由或者ALLINONE的可以更改官方驱动文件 自编译驱动就可以更完美了。
如果使用pve或者unraid 且使用了DKMS,比如awesometic/realtek-r8125-dkms的deb包安装驱动的话,可以执行一下命令来完成修改

  1. cd /usr/src/r8125-9.007.01
  2. sed -i 's/ENABLE_MULTIPLE_TX_QUEUE = n/ENABLE_MULTIPLE_TX_QUEUE = y/g' src/Makefile
  3. sed -i 's/ENABLE_RSS_SUPPORT = n/ENABLE_RSS_SUPPORT = y/g' src/Makefile
  4. dkms remove r8125/9.007.01 -k 5.13.19-2-pve
  5. dkms build r8125/9.007.01 -k 5.13.19-2-pve --force-version-override
  6. dkms install r8125/9.007.01 -k 5.13.19-2-pve --force-version-override
复制代码

其中 5.13.19-2-pve为对应的内核名称 -k之后可以用Tab键补齐。这个时候modinfo r8125 应该可以看到输出信息version:        9.007.01-NAPI-RSS,在NAPI后面多了RSS。
重启后生效。

重启之后可以grep -E enp* /proc/interrupts 来查看效果,cpu0 cpu1 cpu2 cpu3 都有中断了。

这样开启rx tx的多队列支持。
我的J4125 CPU 和PVE7.1-8 拷机12小时稳定无错误。PVE对虚拟机开启多队列支持之后,虚拟机里面ethtool -L也可以开始多队列了。


补 自编译 dkms deb包:
2022.03.18更新 :
2022.05.01更新:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 10恩山币 +14 收起 理由
ld0574 + 1 PVE8,内核6.2,9.011版本编译运行通过,感.
fhbyljj + 1 折腾过这个千万不要升级PVE8.0
一根小香蕉 + 1 根据大佬的帖子,我总结了下 https://tohot.
我望云 + 2 666
await + 2 5.1版更新了,谢谢大佬
三叶猫 + 2 感谢你的分享,无论怎样,你都是最无私的人.
☆≈逍遥≈☆ + 1 感谢大佬,我的ikuai掉线的问题终于解决了!
virus1999 + 1 风清云淡、飘逸悠然…… 极爽!
474615686 + 1 一看就是觉得高端、大气、上档次!
smdx + 2 感谢你的分享

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2021-12-14 10:11 | 显示全部楼层
这个不错!
话说普通的8111F之类也是支持RSS的吧(好像4队列?),不知能不能也这么改。

点评

根据大佬的帖子,我总结了下安装方法 https://tohot.top/archives/26.html 给大家参考  发表于 2022-10-28 23:18
我去官网翻了下驱动 只有r8168的包,驱动代码里没提到 rss的配置,桑心。  发表于 2022-2-28 22:21
如果通过lspci确认硬件支持,那么查看驱动源代码看看代码是否支持。一般来说都可以这样改。 我仔细阅读了代码,代码本身就处理了多队列,改成这样并无啥毛病。 realtek把这些芯片默认作为pc网卡芯片,没有开启多队  详情 回复 发表于 2021-12-14 10:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 10:33 | 显示全部楼层
墨色之月 发表于 2021-12-14 10:11
这个不错!
话说普通的8111F之类也是支持RSS的吧(好像4队列?),不知能不能也这么改。

如果通过lspci确认硬件支持,那么查看驱动源代码看看代码是否支持。一般来说都可以这样改。
我仔细阅读了代码,代码本身就处理了多队列,改成这样并无啥毛病。
realtek把这些芯片默认作为pc网卡芯片,没有开启多队列可以理解。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 11:08 来自手机 | 显示全部楼层
这样做的好处是 更适合做软路由了吗  回降低cpu占用吗  还是要和多核cpu配合

点评

多核cpu 会让CPU处理网卡的中断更加均衡,理论上讲会提高性能。同  详情 回复 发表于 2021-12-14 13:20
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 11:17 | 显示全部楼层
mark一下,这个日后会需要的。

刚开始Unraid用2.5g驱动有点问题。现在更新系统就已经很完善了

点评

开启RSS 和TX 队列会锦上添花。  详情 回复 发表于 2021-12-14 13:26
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 12:02 | 显示全部楼层
请问PVE7.0自带8125B驱动的怎么搞啊?谢谢

点评

pve 7.0 不自带r8125驱动的,应该是有安装的。 你看看你的是不是用dkms安装,如果是,按照操作就好。如果不是dkms安装,建议使用dkms安装r8125驱动。这样更新kernel的时候会一般来说自动更新。  详情 回复 发表于 2021-12-14 13:18
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 13:18 | 显示全部楼层
smdx 发表于 2021-12-14 12:02
请问PVE7.0自带8125B驱动的怎么搞啊?谢谢

pve 7.0 不自带r8125驱动的,应该是有安装的。
你看看你的是不是用dkms安装,如果是,按照操作就好。如果不是dkms安装,建议使用dkms安装r8125驱动。这样更新kernel的时候会一般来说自动更新。

点评

[attachimg]522523[/attachimg] 就官方的7.0安装包装完pve后直接识别网卡了不是应该自带驱动了吗?  详情 回复 发表于 2021-12-14 13:34
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 13:20 | 显示全部楼层
whoweasn 发表于 2021-12-14 11:08
这样做的好处是 更适合做软路由了吗  回降低cpu占用吗  还是要和多核cpu配合

多核cpu 会让CPU处理网卡的中断更加均衡,理论上讲会提高性能。同
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 13:26 | 显示全部楼层
yc01121 发表于 2021-12-14 11:17
mark一下,这个日后会需要的。

刚开始Unraid用2.5g驱动有点问题。现在更新系统就已经很完善了

开启RSS 和TX 队列会锦上添花。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 13:34 | 显示全部楼层
本帖最后由 smdx 于 2021-12-14 13:38 编辑
dominic 发表于 2021-12-14 13:18
pve 7.0 不自带r8125驱动的,应该是有安装的。
你看看你的是不是用dkms安装,如果是,按照操作就好。如 ...

就官方的7.0安装包装完pve后直接识别网卡了不是应该自带驱动了吗?就下载你提供的安装包用dkms安装就行了对吧?谢谢

pve版本:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

要么有人帮你处理了,要么目前使用的linux官方的r8169驱动。  详情 回复 发表于 2021-12-14 13:36
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 13:36 | 显示全部楼层
smdx 发表于 2021-12-14 13:34
就官方的7.0安装包装完pve后直接识别网卡了不是应该自带驱动了吗?

要么有人帮你处理了,要么目前使用的linux官方的r8169驱动。

点评

按你说的用modinfo r8125命令没有输出信息,应该是用r8169驱动了。马上安装试试,谢谢  详情 回复 发表于 2021-12-14 13:49
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 13:49 | 显示全部楼层
dominic 发表于 2021-12-14 13:36
要么有人帮你处理了,要么目前使用的linux官方的r8169驱动。

按你说的用modinfo r8125命令没有输出信息,应该是用r8169驱动了。马上安装试试,谢谢

点评

记得black r8169驱动  详情 回复 发表于 2021-12-14 13:59
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 13:59 | 显示全部楼层
smdx 发表于 2021-12-14 13:49
按你说的用modinfo r8125命令没有输出信息,应该是用r8169驱动了。马上安装试试,谢谢

记得black r8169驱动

点评

楼主请教一下,貌似安装不了.... ------------------------------ Deleting module version: 9.007.01 completely from the DKMS tree. ------------------------------ Done. Unpacking realtek-r8125-dkms  详情 回复 发表于 2021-12-14 14:10
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-12-14 14:10 | 显示全部楼层
dominic 发表于 2021-12-14 13:59
记得black r8169驱动

楼主请教一下,貌似安装不了....

------------------------------
Deleting module version: 9.007.01
completely from the DKMS tree.
------------------------------
Done.
Unpacking realtek-r8125-dkms (9.007.01-1) over (9.007.01-1) ...
Setting up realtek-r8125-dkms (9.007.01-1) ...
Loading new realtek-r8125-9.007.01 DKMS files...
Building for 5.11.22-4-pve
Building for architecture amd64
Module build for kernel 5.11.22-4-pve was skipped since the
kernel headers for this kernel does not seem to be installed.

点评

你没有安装header。 apt update && apt install pve-headers-$(uname -r)  详情 回复 发表于 2021-12-14 16:25
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-12-14 16:25 | 显示全部楼层
smdx 发表于 2021-12-14 14:10
楼主请教一下,貌似安装不了....

------------------------------

你没有安装header。

apt update && apt install pve-headers-$(uname -r)

点评

谢谢,已经安装好了。 请问这样算是正常使用了吗? [attachimg]522594[/attachimg]  详情 回复 发表于 2021-12-14 19:13
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-29 23:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表