Linux /proc/pid/sched中的时钟增量是多少? main(xxxxx,#线程:xxxxx) --------------------------------------------------------- se.exec_开始:xxxx 时间:xxxx se.sum_exec_运行时:xxxx se.wait_开始:xxxx ... 保单号码:xxxx 优先级:xxxx 时钟增量:58

Linux /proc/pid/sched中的时钟增量是多少? main(xxxxx,#线程:xxxxx) --------------------------------------------------------- se.exec_开始:xxxx 时间:xxxx se.sum_exec_运行时:xxxx se.wait_开始:xxxx ... 保单号码:xxxx 优先级:xxxx 时钟增量:58,linux,linux-kernel,procfs,Linux,Linux Kernel,Procfs,我潜入内核源代码,以找出时钟增量代表什么 我找到了在读取/proc/pid/sched时将其打印出来的函数 它是proc\u sched\u show\u task,它被放入kernel/sched/debug.c文件中 深入研究后,我找到了打印出时钟增量的代码部分。。。这是: main (xxxxx, #threads: xxxxx) --------------------------------------------------------- se.exec_start

我潜入内核源代码,以找出
时钟增量
代表什么

我找到了在读取
/proc/pid/sched
时将其打印出来的函数

它是
proc\u sched\u show\u task
,它被放入
kernel/sched/debug.c
文件中

深入研究后,我找到了打印出
时钟增量的代码部分。。。这是:

main (xxxxx, #threads: xxxxx)
---------------------------------------------------------
se.exec_start                      :                 xxxx
se.vruntime                        :                 xxxx
se.sum_exec_runtime                :                 xxxx
se.wait_start                      :                 xxxx
...
policy                             :                 xxxx
prio                               :                 xxxx
clock-delta                        :                   58 <== this one
raw\u smp\u processor\u id
返回运行当前线程的CPU的id

所以
clock delta
是两次调用的
cpu\u clock()
返回的两个值之间的差值

kernel/sched/clock.c
中,我找到了此函数的描述:

cpu时钟(i)提供快速(执行时间)高分辨率
CPU之间有界漂移的时钟。cpu_时钟(i)的值为 常数i的单调性。返回的时间戳以纳秒为单位

unsigned int this_cpu = raw_smp_processor_id();
u64 t0, t1;

t0 = cpu_clock(this_cpu);
t1 = cpu_clock(this_cpu);
SEQ_printf(m, "%-35s:%21Ld\n",
           "clock-delta", (long long)(t1-t0));