Не знаю почему 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
ро корень = 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 = рс KEYTABLE = нам rd_NO_DM = 788 VGA consoleblank = 0 clocksource_failover = acpi_pm
grep flags /proc/cpuinfo
флаги: 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 e
Некоторые процессоры Intel до Westmere имеют несколько некорректную возможность TSC, возможно, это ваш случай, и ядро заносит TSC в черный список как источник таймера. Выполните следующую команду
dmesg | grep -i tsc
и сообщите здесь результат.