可用时钟源中缺少 TSC

可用时钟源中缺少 TSC

不确定为什么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

对以下程序的性能hpet或测量结果不满意。acpi_pm

#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 根 = 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

标志:fpu vme de pse tscmsr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe 系统调用 nx rdtscp lm constant_tscarch_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

答案1

一些 Westmere 之前的 Intel CPU 的 TSC 功能存在一些缺陷,也许这就是你的情况,内核将 TSC 列入了计时器源的黑名单。发出以下命令

dmesg | grep -i tsc

并在此报告输出。

相关内容