测试Linux开机时间

来源:互联网 发布:ubuntu 16.04 软件库 编辑:程序博客网 时间:2024/05/05 03:46
<pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在Linux内核有关时间的函数有2类:时钟函数以及jiffy。</span><span style="font-family: Arial, Helvetica, sans-serif;">时钟函数主要位于kernel/time/;</span>

本文通过对/kernel/printk.c文件中的vprintk函数进行分析,以系统调用的方式实现了获取内核的uptime。

代码如下

SYSCALL_DEFINE0(testuptime){int this_cpu;char tbuf[50];unsigned long long t;unsigned long nanosec_rem;this_cpu = smp_processor_id();t = cpu_clock(this_cpu);nanosec_rem = do_div(t, 1000000000);sprintf(tbuf, "[%5lu.%06lu] ",(unsigned long) t, nanosec_rem/ 1000);printk(KERN_INFO "current cpu time is %s.\n",tbuf);return 0;}

测试结果如下


分析:系统调用中也是使用了printk函数进行输出,2个uptime一致的原因是vprintk在获取到cpu的时钟之后还在处理一些安全性的事务操作。


0 0
原创粉丝点击