2013-02-22 103 views
1
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 

回答

5

我潜伏到内核源代码,找出哪些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。

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

进入kernel/sched/clock.c我发现这个功能的描述:

cpu_clock(ⅰ)提供了一种快速(执行时间)的高分辨率
时钟与CPU之间的有界漂移。的cpu_clock(i)的值是单调 为常数I。返回的时间戳是在纳秒。

相关问题