2013-02-22 18 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。返回的時間戳是在納秒。

相關問題