TSC缺less可用的时钟源

不确定为什么TSC作为时钟源不可用?

 cat /sys/devices/system/clocksource/clocksource0/available_clocksource hpet acpi_pm 

我使用的CPU是Intel Xeon(R) X5570 @ 2.93GHz 。 主板是Supermicro X8DTU-F 。 运行CentOS 6.3 2.6.32-279.22.1.el6.x86_64

对使用以下程序测量的hpetacpi_pm的性能hpet

 #include <time.h> main() { int rc; long i; struct timespec ts; for(i=0; i<10000000; i++) { rc = clock_gettime(CLOCK_MONOTONIC, &ts); } } 

hpet作为时钟源

 time ./clock_timing real 6m25.761s user 6m23.456s sys 0m0.403s 

acpi_pm作为时钟源

 time ./clock_timing real 10m12.057s user 0m6.615s sys 10m2.549s 

更新

cat /proc/cmdline

ro root = UUID = 72903706-30bf-4285-9016-d24cf2066d3c rd_NO_LUKS rd_NO_LVM LANG = en_US.UTF-8 rd_NO_MD SYSFONT = latarcyrheb-sun16 crashkernel = 132M @ 0M KEYBOARDTYPE = pc KEYTABLE = us rd_NO_DM vga = 788 consoleblank = 0 clocksource_failover = acpi_pm

grep flags /proc/cpuinfo

flags:fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid

一些英特尔之前的Westmere CPU具有一定的TSCfunction,也许这是你的情况,内核将TSC列为计时器源。 发出以下命令

dmesg | grep -i tsc

并在这里报告输出。