4
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
4

1 回答 1

8

我潜伏在内核源代码中以找出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 是单调的。返回的时间戳以纳秒为单位。

于 2013-02-22T14:40:28.593 回答