printk打印时间在sleep之后不继续,反映不出休眠时间的问题

1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒
此处读取的是ns,
t = printk_clock();
nanosec_rem = do_div(t, 1000000000);
对于do_div()是一个宏,t现在是整数部分,返回值nanosec_rem是余数部分
tlen = sprintf(tbuf,"<%c>[%5lu.%06lu] ",loglev_char,(unsigned long)t,nanosec_rem/1000);
此处nanosec_rem/1000取到的是微妙。
对于suspend以及resume,printk_clock()是基于cpu调度实现的,如果suspend之后cpu不再调度,所以值不变,由于timekeep的framework的机制,会自动唤醒之后修改jiffies的值,可以考虑用jiffies的值来修正休眠唤醒printk打印时间的问题

你可能感兴趣的:(sleep)