什么是/ proc / pid / sched中的clock-delta?

时间:2013-02-22 12:47:07

标签: linux linux-kernel procfs

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

1 个答案:

答案 0 :(得分:7)

我潜伏在内核源代码中,找出clock-delta代表的内容。

我找到了在读取/proc/pid/sched时将其打印出来的功能。

它是proc_sched_show_task,它是kernel/sched/debug.c文件。

深入了解我找到了打印出clock-delta的代码部分......这就是:

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));

raw_smp_processor_id返回运行当前线程的CPU的id。

所以...... clock-delta是两次调用的cpu_clock()返回的两个值之间的差异。

进入kernel/sched/clock.c我找到了这个函数的描述:

  

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

相关问题