После отладки неустойчивой проблемы с tsc для BIOS продуктов моей компании, я подозреваю, что tsc может быть всегда нестабильным, когда единственным источником синхронизации является jiffies.Является ли clocksource tsc неустойчивым, когда единственным источником синхронизации является jiffies?
У меня ошибка: Clocksource tsc unstable (delta = -531266231 ns).
Тогда ядро выбрало jiffies, отличное от tsc. Единственными двумя источниками времени являются tsc и jiffies. Я пробовал Linux 2.6 и 3.2 с i386 и x64. Ядро сказало, что CPU фактически поддерживает постоянную tsc и инвариантную tsc.
После проверки исходного кода Linux я обнаружил, что tsc имеет флаг CLOCKSOURCE_MUST_VERIFY
, а jiffies - нет. Я предполагаю, что если есть только два источника времени, jiffies и tsc, то jiffies будут сторожевым таймером. Однако, по сравнению с tsc, jiffies - очень плохой источник синхронизации, и поэтому я подозреваю, что tsc в этой ситуации всегда будет «неустойчивой», потому что для проверки это плохой сторожевой таймер.
Я также проверяю некоторые другие системы с хорошо работающими tsc и обнаруживаю, что у них есть другие источники времени, такие как Hpet или acpi_pm.
Поэтому, как я могу определить, возникает ли неустойчивость tsc от jiffies или некоторой ошибки в другом месте?
Сегодня я тестировал изображение CentOS 6.6 i386 с минимальной установкой. По умолчанию у ядра три источника времени: tsc, acpi_pm и jiffies. Clocksource tsc - тот, который используется. – Walkingmind