启动时候用printk time 的问题
时间:2009-03-28 来源:lawrencekang
最近在内核中加上PRINTK_TIME选项,来得到时间戳. 不过好象得到的时间不正确.于是看了一下代码,发现printk的代码 ,它得到时间戳是根据sched_clock ,
sched_clock 声明为weak (in the time.c),缺省的是返回 jiffers (实现1)
有些平台 有自己的 sched_clock实现,也就是返回时钟寄存器的值, (实现2) 这时有一个问题,对于实现 1 , 时钟中断还未初始化,所以不会发生时钟中断, jiffers 一直0,
对于实现2 , 时钟寄存器也没有初始化 ,一般初始化在MACHINE_START 的.timer 中的 timer_init 函数中, 所以得到的时钟寄存器的值是错误的
那么, 怎么能得到正确的启动时间 来分析呢?
sched_clock 声明为weak (in the time.c),缺省的是返回 jiffers (实现1)
有些平台 有自己的 sched_clock实现,也就是返回时钟寄存器的值, (实现2) 这时有一个问题,对于实现 1 , 时钟中断还未初始化,所以不会发生时钟中断, jiffers 一直0,
对于实现2 , 时钟寄存器也没有初始化 ,一般初始化在MACHINE_START 的.timer 中的 timer_init 函数中, 所以得到的时钟寄存器的值是错误的
那么, 怎么能得到正确的启动时间 来分析呢?
相关阅读 更多 +