prink()开头的数字是什么意思?

时间:2014-03-25 04:15:53

标签: printk

如果使用prink()打印内核消息并在控制台中读取它,它看起来像这样:

<6>[ 2809.666228] amp_enable: amp enable bypass(2)  
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0  
<3>[ 2810.084296] init: untracked pid 4196 exited  
<3>[ 2810.873706] init: untracked pid 4817 exited  
<6>[ 2810.933923] msm_ta_detect_work: USB exit ta detection - frindex  
<6>[ 2817.483839] amp_enable: AMP_EN is set to 1  
<6>[ 2823.084022] adjust_soc: ibat_ua = -114500, vbat_uv = 4296066, soc = 95, batt_temp=302  
<6>[ 2823.669799] SLIM_CL: skip reconfig sequence  
<6>[ 2823.685578] amp_enable: amp enable bypass(2)  
<6>[ 2823.686372] amp_enable: AMP_EN is set to 0  

每行开头的数字是什么意思?这是某种时间戳吗?我该如何解读?

1 个答案:

答案 0 :(得分:1)

如所提到的NG,&lt; 3&gt;和&lt; 6&gt;是对数级别,其中&lt; 3&gt;是是KERN_ERR和&lt; 6&gt;是KERN_INFO

这是从http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html获取的列表。

0 KERN_EMERG
1 KERN_ALERT
2 KERN_CRIT
3 KERN_ERR
4 KERN_WARNING
5 KERN_NOTICE
6 KERN_INFO
7 KERN_DEBUG

下一个数字似乎是自系统启动以来的秒数。当您看到这些消息时,您的系统是否在50分钟前启动了?时间戳可以帮助我们跟踪任务花费的时间。例如,amp_enable: amp enable bypass(2)需要0.519毫秒才能完成。从第一次进入到第四次进入,花了1.207478s。

<6>[ 2809.666228] amp_enable: amp enable bypass(2)  
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0  
<3>[ 2810.084296] init: untracked pid 4196 exited  
<3>[ 2810.873706] init: untracked pid 4817 exited 

我通过访问http://elinux.org/Printk_Times_Sample1了解了这一点。