[功耗實戰]Kernel日誌等級對功耗的影響度

0. 日誌等級

  • \include\linux\kern_levels.h

定義了8個level的優先級,其中0的優先級最高,7的優先級最低

#define KERN_EMERG KERN_SOH "0" /* system is unusable */
#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */
#define KERN_CRIT KERN_SOH "2" /* critical conditions */
#define KERN_ERR KERN_SOH "3" /* error conditions */
#define KERN_WARNING KERN_SOH "4" /* warning conditions */
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
#define KERN_INFO KERN_SOH "6" /* informational */
#define KERN_DEBUG KERN_SOH "7" /* debug-level messages */

1.查看日誌等級

  • adb shell “cat proc/sys/kernel/printk”
C:\Windows\system32>adb shell " cat /proc/sys/kernel/printk "
8       4       1       7

第一個參數表示控制檯logLevel, 第二個參數表示printk默認的logLevel

2.修改日誌輸出等級

Log輸出等級修改爲8,導致Log量的增加,增加耗電

  • adb shell “echo 日誌等級 > proc/sys/kernel/printk”
C:\Windows\system32>adb shell " echo 8 > /proc/sys/kernel/printk "

C:\Windows\system32>adb shell " cat /proc/sys/kernel/printk "
8       4       1       7

3. 測試

測試條件 日誌等級8 日誌等級4 差值
1.暗屏5分鐘後 2.飛行模式 3.65mA 3.48 mA 0.17 mA
1.暗屏5分鐘後 2.WiFi + 飛行模式 + 禁用 GMS 5.95mA 5.6 mA 0.35 mA
1.亮屏+桌面待機5分鐘 2.WiFi + 飛行模式 + 禁用 GMS 301.2mA 300.2 mA 0.6 mA

4. 日誌等級對功耗影響

影響度很少(小於1mA),不會導致異常功耗(出現相差10mA數量級的情況),建議按需開啓不同日誌等級,大膽開啓即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章