找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 1244|回复: 6

缓解mtk-openwrt-feeds主线5.4内核有线驱动CPU占用虚高的问题

[复制链接]
发表于 2025-11-19 22:48 | 显示全部楼层 |阅读模式
这个问题还挺恶心的,前后排查了快一个月才解决。。。



具体表现是,闲置状态下,CPU占用,最新的mtk-openwrt-feeds驱动占用总是保持在0.15-0.20之间,而且kworker频繁调用,用pidstat和perf都看不出来原因,只知道phy_state_machine被频繁调用


回滚到Release MP2.3,也就是commit id b62586b3cc50a02ed6572c8667c5be6effedcaaf,问题解决。
没办法,只能对代码进行静态分析了,发现从Release MP2.3到 HEAD 引入delayed_work的地方有:
1. mtk_hw_reset_monitor_work,commit id 1791e3d251db067c90d45742d1fef1046809aaec
2. mtk_sgmii_pcs_link_poll,commit id d49feb90f8ad4a519bc6a68252e9330ab40f582e


回滚第二个没用,问题依旧。于是仔细看第一个:
这个commit干了两个事情,
1. 重构SER,即System Error Recovery机制的数据结构,使用结构体存储上次检测的状态。
2. 增强ADMA_RX,GDM_RX,QDMA_TX的检测规则。


问题主要出在mtk_monitor_wdma_rx上,直接上代码:



这个地方居然用了一个msleep(50)。。。使用msleep会导致worker线程变成D或者S,还会阻塞队列上的其它任务,总之这个写法太糟糕了。。。
直接删掉这个逻辑,用旧版的cur,pre比较一次的逻辑就可以了,因为后面逻辑重构了,还有mtk_check_wifi_busy等状态检测和hang_count_netsys兜底,所以理论上回滚影响不大。


修改好代码以后,问题不再出现。

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
发表于 2025-11-19 22:53 | 显示全部楼层
本帖最后由 iamyangyi 于 2025-11-19 23:00 编辑

顶下 喜欢这种探到底研究
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-11-20 10:02 来自手机 | 显示全部楼层
技术一流,一般人看不懂,也没空细研,所以现在这么多垃圾app。应用不断升级,不是优化,是加垃圾。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-11-20 10:36 | 显示全部楼层
按道理这里不应该,它只执行3个循环,应该别处还有一个循环来执行它

点评

它是放置在一个delayed_queue里面执行的,这是一部分的任务,然后主线程执行完这些任务递归再放置到delayed_queue里面实现了循环。。。  详情 回复 发表于 2025-11-20 20:43
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2025-11-20 20:43 来自手机 | 显示全部楼层
wulishui 发表于 2025-11-20 10:36
按道理这里不应该,它只执行3个循环,应该别处还有一个循环来执行它

它是放置在一个delayed_queue里面执行的,这是一部分的任务,然后主线程执行完这些任务递归再放置到delayed_queue里面实现了循环。。。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-11-21 08:48 | 显示全部楼层
牛逼牛逼牛逼
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-11-24 13:06 | 显示全部楼层
牛! 很久很久很久以前玩C,汇编, 看到面熟的代码,恍然大悟,原来我认识这些!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /2 下一条

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

GMT+8, 2026-8-23 22:38

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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

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