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
答案 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。返回的时间戳以纳秒为单位。