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
问问题
2513 次
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 回答