Что означает «Clocksource TSC нестабильный»?


10

Всякий раз, когда я вижу загрузку Linux, я вижу это сообщение:

нестабильный источник тактовой частоты (delta = NNNNNNNN ns)

где NNNNNNNN - очень большое число, которое может быть положительным или отрицательным.

Что означает это сообщение? Должен ли я быть обеспокоен этим?


Я думаю, что tscотносится к счетчику меток времени . Если это поможет.
Der Hochstapler

Кроме того, учитывая, что я нахожу об этом сообщении в Интернете, вы видите это сообщение на физической или виртуальной машине. Похоже, что это актуально.
Der Hochstapler

И физический, и виртуальный. Я получаю это сообщение в нескольких разных системах при загрузке Linux на них.
bwDraco

Я получил именно это сообщение, /var/log/messageкогда добавил параметры "acpi = off" в /etc/grub.conf(как kernel=вариант). Когда я удалил его, перезагрузил, сообщение пропало. CentOS 6 с ядром: .6.32-279.19.1.el6.x86_64

Ответы:


8

Я честно вижу это сообщение сегодня впервые и понятия не имею, что оно на самом деле означает.

При этом я прочитал статью в Википедии, посвященную счетчику меток времени (именно это tscозначает сообщение об ошибке). В статье упоминается проблема с TSC во втором абзаце:

До недавнего времени счетчик меток времени являлся отличным способом получения информации о тактовой частоте ЦП с высоким разрешением и минимальными издержками. С появлением многоядерных / многопоточных ЦП, систем с несколькими ЦП и «спящих» операционных систем нельзя полагаться на TSC для получения точных результатов.- если не будут предприняты особые меры для исправления возможных недостатков: частоты тиков и того, имеют ли все ядра (процессоры) одинаковые значения в своих регистрах учета времени. Не обещается, что счетчики меток времени нескольких процессоров на одной материнской плате будут синхронизированы. В таких случаях программисты могут получить надежные результаты только путем привязки своего кода к одному ЦП. Даже в этом случае скорость ЦП может измениться из-за мер по энергосбережению, предпринятых ОС или BIOS, или система может быть переведена в спящий режим и позднее возобновлена ​​(сброс счетчика меток времени). В этих последних случаях, чтобы оставаться актуальным, счетчик должен периодически калиброваться (в соответствии с временным разрешением, требуемым вашей заявкой).

Короче говоря, в современных системах TSC отстает для точного измерения времени . И это то, что сообщение говорит вам. В вашей системе TSC не является стабильным источником времени.

deltaОтметил, я бы предположить, это сообщенное время дельта между двумя клещами TSC. Это означает, что каждый раз, когда подсчитывается TSC 1, NNNNNNNNNнаносекунды пройдут. Вот так вы обычно можете сохранять очень точное время.

Ядро Linux будет проверять эту частоту несколько раз (чтобы определить, является ли источник стабильным) и получит разные результаты. Итак, сообщение.


Итак, вы должны быть обеспокоены?
Я, честно говоря, не знаю. Насколько я понимаю, эта проблема возникает из-за того, что процессы «перемещаются» между ядрами (каждое ядро ​​может иметь разную частоту TSC) или ядром, меняющим частоту ядра (как при энергосбережении).

Скорее всего, сообщение печатается только потому, что ядро ​​обнаружило эту проблему для себя и теперь будет соответствующим образом скорректировано.

И из того, что я прочитал в исходниках ядра ( arch/x86/kernel/tsc.c), я не думаю, что я слишком далек от своих предположений.

Я сомневаюсь, что сообщение означает критическое состояние. И я основываю это на предположении, что вы уже знаете, если это было критически важно.


2
Цитируя ту же статью, некоторые современные процессоры также предоставляют постоянный счетчик меток времени: последние процессоры Intel включают TSC с постоянной скоростью (обозначается флагом constant_tsc в Linux / proc / cpuinfo). С этими процессорами TSC читает с максимальной скоростью процессора, независимо от фактической скорости работы процессора.
Scai

Вы рекомендуете использовать hpet вместо tsc?
CMCDragonkai

1
Я хотел бы просто добавить информацию. Вот сегодня я столкнулся с этой проблемой на одном из наших супермикро-серверов. ОС RHEL 6.5 и выдает то же сообщение. И этот сервер сейчас ползет с улиткой. Прошел час, а загрузка еще не завершена. Следующим моим шагом будет изменение счетчика и добавление информации в файл grub.conf путем перехода в режим восстановления. Поскольку однопользовательский режим также не работает
OmiPenguin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.