`

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打印时间的问题

分享到:
评论

相关推荐

    Linux:printk与printf的区别

    内核层使用printk打印,应用层调用C库的printf打印。在内核层是调用不了文件系统中C库的printf只能用printk。  两者之间的一个显著区别在于printk允许通过指定一个标志来设置优先级(在include/linux/kern_levels.h...

    printk-formats打印格式1

    If variable is of Type,use printk format specifier:Raw pointer value SHOULD be p

    printk调试技术

    printk调试技术

    linux console printk 代码实现分析

    对linux下8250串口驱动和console口实现方法及printk实现进行代码分析 内核版本2.6

    printk_linux_

    linux-1.0.tar.gz,早期linux源码,可用于linux的学习

    高通平台printk输出log到串口

    1、查看当前打印级别 # cat /proc/sys/kernel/printk 默认为:4 4 1 7 注释:第一个参数表示控制台log Level,第二个参数表示printk默认的logLevel 2、修改打印(数字之间用空格分开) # echo 8 &gt; /proc/sys/...

    Printk日志级别

    linux系统中Printk日志级别简介

    基于Linux系统的管道瓦斯综合参数测定仪启动时间优化

    以管道瓦斯综合参数测定仪为例,介绍了Linux下的时间测量方法Printk Time,并提出了Linux系统启动时间优化的3个阶段,分别是系统引导阶段、系统启动阶段和应用程序阶段。结合应用实例,提出一系列的优化措施,使得系统...

    Linux内核调试技术之Printk

     在内核调试技术之中,简单的是printk的使用了,它的用法和C语言应用程序中的printf使用类似,在应用程序中依靠的是stdio.h中的库,而在linux内核中没有这个库,所以在linux内核中,使用这个printk要对内核的实现...

    Kernel-Debug-Series-Part3-printk

    Kernel-Debug-Series-Part3-printk

    Debugging kernel and modules via GDB.pdf

    比如printk()是调试内核代码时最常用的一种技术,但是这种调试方法需要对问题产生的点有个大概的感知,这样才能有的放矢地在合适的代码处添加打印信息。但是很多情况下,我们对问题产生的原因毫无头绪,也就不可能...

    Linux系统启动时间的极限优化

    如果你的Linux内核因为某些原因不能更新为2.6.11之后的版本,那么可以参考CELF提供的方法修改或直接下载它们提供的补丁:http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes 开启PrintkTime功

    浅谈在linux kernel中打印函数调用的堆栈的方法

    在Linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入: dump_stack(); 或 __backtrace(); 即可 dump_stack()在~/kernel/ lib/Dump_stack.c中定义 void dump_stack(void)...

    嵌入式Linux的调试技术

    打印内核调试信息:printk  Printk函数运行在内核空间,printf函数运行在用户空间。Linux内核程序只能使用printk函数输出调试信息。  防止printk函数降低linux驱动性能  Linux驱动只在开发阶段使用printk函数...

    linux内核调试方法总结

    四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_stack() 五 printk() 1 printk函数的健壮性 2 printk函数脆弱之处 3 LOG等级 4 记录缓冲区 5 syslogd/klogd 6 dmesg 7 注意 8 内核printk和日志系统的总体结构 9 ...

    嵌入式软件调试技术专题(3):Linux内核日志与信息打印

    Linux内核、驱动开发中的printk打印技巧、日志系统、函数调用栈、动态调试、strace命令、内核转储、使用proc文件系统查看内核信息等查看Linux内核日志及打印信息的各种工具和方法。

    实验五:在arm linux中增加系统调用1

    1、 在 ARM -Linux 内核中加入一个系统调用, 系统调用的功能随便你选 2、 提示:系统调用 中打印语句采 printk(内核打印)而非 printf

    利用kernel提供的接口打印进程号(pid)

    c文件printPid.c 代码如下:#include &lt;linux&gt;#include &lt;linux&gt;#include &lt;linux&gt;#include &lt;linux&gt;#include static __init int printPid(void) //安装模块函数{ struct ... printk(“begin.\n”); task=&init_task; 

    82-实验 实训 实习-进程遍历 实验1

    导”教材第 13 章。2. 每个进程的进程名字、pid、进程状态、父进程的指针等在 task-struct 结构的字段中。在内核中使用 printk 函数打印有

Global site tag (gtag.js) - Google Analytics