__ratelimit: XXX callbacks suppressed
来源:互联网 发布:c语言 void关键字 编辑:程序博客网 时间:2024/05/29 17:25
【问题】
在给Kernel加入了cpufreq支持,启动了cpu freq的debugging,并且在bootargs中加入cpufreq.debug=1,才能真正打开内核中cpu freq的debug。cpu freq驱动是加入了,但是不定期会出现:
__ratelimit: XXX callbacks suppressed
【解决过程】
1.gogole或百度,无果,但是有人建议查看log,看看是否有帮助,所以去:
cat /var/log/messages
发现这样一堆东西:
Dec 31 21:32:56 uclibc user.debug kernel: [42949461.000001] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:32:56 uclibc user.debug kernel: [42949461.200000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:32:56 uclibc user.debug kernel: [42949461.400000] cpufreq-core: target for CPU 0: 69642 kHz, relation 0
Dec 31 21:32:56 uclibc user.debug kernel: [42949461.600000] cpufreq-core: target for CPU 0: 23214 kHz, relation 0
Dec 31 21:32:57 uclibc user.debug kernel: [42949461.800000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:32:57 uclibc user.debug kernel: [42949462.000000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:33:00 uclibc user.warn kernel: [42949465.600000] __ratelimit: 17 callbacks suppressed
Dec 31 21:33:00 uclibc user.debug kernel: [42949465.600011] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:33:01 uclibc user.debug kernel: [42949465.800000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:33:01 uclibc user.debug kernel: [42949466.000000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:33:01 uclibc user.debug kernel: [42949466.200000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
Dec 31 21:33:01 uclibc user.debug kernel: [42949466.400000] cpufreq-core: target for CPU 0: 0 kHz, relation 0
2.去System.map中,找到了函数__ratelimit,说明此函数,是内核里面有源码的。
3.去source Insight中搜索__ratelimit,发现其中一处:
int printk_ratelimit(void)
{
return __ratelimit(&printk_ratelimit_state);
}
EXPORT_SYMBOL(printk_ratelimit);
【解决办法】
上面信息,加上前面的log中的信息,所以想到了,估计是printk中的打印导致的,因为cpu freq core中,加了debug支持,所以会打印这些东西,而且由于cpu freq的调用频率很高,所以导致printk输出来不及了,所以提示__ratelimit: XXX callbacks suppressed。
知道原因,办法很简单,就是去kernel配置menuconfig中,把debug支持去掉:
CPU Power Management —> [ ] Enable CPUfreq debugging
然后同时也把内核启动参数bootargs中的cpufreq.debug=1也去掉,cpu freq code就会不会打印这么多信息了,就不会提示你打印太多,printk都来不及打印了。
【提示】
其他人出现此类问题,很可能也是这类原因,解决办法就是,找到你的内核中到底打印了哪些东西:
cat /var/log/messages
(注意此会无尽的输出,所以等输出一段,看清楚内容后,即可Ctrl +C 中止)
就知道是哪一部分的原因了。比如,USB相关打印太多,导致printk来不及打印等等。
转载地址:http://www.crifan.com/resolved___ratelimit_xxx_callbacks_suppressed/
- __ratelimit: XXX callbacks suppressed
- Callbacks
- callbacks
- messages suppressed
- resume suppressed feature
- Generic Callbacks
- jQuery Callbacks
- NS3 Callbacks
- Node Callbacks
- jQuery.Callbacks
- jQuery.Callbacks()
- Nat报错“printk: xxxx messages suppressed”
- OSPF Forward Address Suppressed产生次优路径
- Callbacks with Delegates [转]
- Objective-c Callbacks(转载)
- jQuery.Callbacks(flags)
- callbacks,回调函数
- objective-c callbacks
- 用C语言实现PHP的basename函数
- 【Html5每日练习】canvas笑脸
- postgresql 函数
- calcHist的使用
- AS3 OptionsList ---- 选项框列表类
- __ratelimit: XXX callbacks suppressed
- 【GLSL教程】(五)卡通着色
- Oracle lock 锁机制 总结
- java 去掉换行符等特殊字符
- Android hardware按键触感功能实现
- OpenCV 2.3.1 中关于cvCaptureProperty()定位不准的问题
- C#正则表达式之查找特定的字符!...
- 【GLSL教程】(六)逐顶点的光照
- linux中env,export, set的区别