Привет ЛОР!
Мы поддерживаем форк опенсорсной игры teeworlds. В коде by-design N раз в секунду вызывается функция gettimeofday. В последнее время на сервере увеличилась нагрузка на cpu от инстансов игры и появился iowait до 5%. В коде за это время ничего глобального не менялось. Подцепившись strace к инстансу, видно что часто вызывается сискол gettimeofday.
gettimeofday({1389771308, 455672}, NULL) = 0
Сравнив выхлоп strace с сервера с выхлопом с десктопа, заметил что на десктопе этот сискол не дёргается.
Подозреваю, что различие в том, то на десктопе в качестве clocksource используется tsc, а на сервере в процессе загрузки ядро отказывается использовать tsc:
tsc: Marking TSC unstable due to TSC halts in idle
Пробовал оба доступных на сервере источника hpet и acpi_pm, сисколы не изчезают.
Никак не могу активировать tsc. Пробовал параметр ядра force_tsc_stable=1. Даже если передать ядру опцию clocksource=tsc:
Override clocksource tsc is not HRT compatible. Cannot switch while in HRT/NOHZ mode