Не уверенный, почему TSC
поскольку источник часов не доступен?
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
hpet acpi_pm
ЦП, который я использую, 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 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
флаги: fpu vme de pse tsc
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm кусочка msr pae mce cx8 apic mtrr pge mca cmov constant_tsc
монитор arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 ds_cpl vmx установленная международная ассоциация развития tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm dts tpr_shadow vnmi flexpriority ept vpid
Некоторые процессоры Intel до Westmere имеют несколько некорректную возможность TSC, возможно, это ваш случай, и ядро заносит TSC в черный список как источник таймера. Выполните следующую команду
dmesg | grep -i tsc
и сообщите здесь результат.