Що означає "синхросигнал tsc нестабільний"?


10

Щоразу, коли я бачу завантаження Linux, я бачу це повідомлення:

тактовий ресурс tsc нестабільний (дельта = NNNNNNNN нс)

де NNNNNNNN - це дуже велика кількість, яка може бути позитивною чи негативною.

Що означає це повідомлення? Чи повинен мене це турбувати?


Я думаю, що це tscстосується лічильника часових штампів . Якщо це допомагає.
Der Hochstapler

Також, враховуючи те, що я знаходжу про це повідомлення в Інтернеті, чи бачите ви це повідомлення на фізичній машині чи віртуальній. Схоже, це актуально.
Der Hochstapler

Як фізичний, так і віртуальний. Я отримую це повідомлення в декількох різних системах, коли запускаю Linux на них.
bwDraco

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

Відповіді:


8

Сьогодні я вперше вперше бачу це повідомлення і не маю поняття, що воно насправді означає.

Коли це було сказано, я прочитав статтю Вікіпедії на лічильнику часових штампів (на що позначається tscповідомлення про помилку). У статті йдеться про проблему з ТСК у другому пункті:

Лічильник часових штампів до недавнього часу був чудовим способом отримання інформації про час роботи центрального процесора з високою роздільною здатністю та низьким рівнем витрат. З появою багатоядерних / гіперточених процесорів, систем з декількома процесорами та операційними системами, що "сплять", TSC не може покладатися на забезпечення точних результатів- якщо не буде зроблено великої обережності, щоб виправити можливі недоліки: швидкість галочки та чи всі ядра (процесори) мають однакові значення у своїх реєстраторах зберігання часу. Немає обіцянок, що лічильники часових міток декількох процесорів на одній материнській платі будуть синхронізовані. У таких випадках програмісти можуть отримати достовірні результати, лише заблокувавши свій код в одному процесорі. Вже тоді швидкість процесора може змінюватися через заходи з енергозбереження, що вживаються ОС або BIOS, або система може перейти в сплячку і пізніше відновитись (скидання лічильника часових знаків). У цих останніх випадках, щоб залишатися актуальними, лічильник повинен періодично повторно калібруватися (відповідно до часу, яке вимагає ваша заявка).

Коротше кажучи, у сучасних системах ТСК підсмоктує для точного вимірювання часу . І саме це вам повідомляє повідомлення. У вашій системі TSC не є стабільним джерелом часу.

Зазначена delta, я би припустила, - це повідомлена дельта часу між двома кліщами ТСК. Це означає, що кожного разу, коли TSC рахує 1, NNNNNNNNNнаносекунди пройдуть. Отже, саме так ви можете тримати дуже точний час.

Ядро Linux буде перевіряти цю частоту кілька разів (щоб визначити, чи є джерело стабільним) і отримало різні результати. Таким чином, повідомлення.


Отже, чи потрібно вас турбувати?
Я, чесно кажучи, не знаю. Наскільки я розумію, ця проблема виникає внаслідок процесів, які "переміщуються" між ядрами (кожне ядро ​​може мати різну частоту TSC) або ядром, що змінюють свою частоту ядра (наприклад, при енергозбереженні).

Швидше за все, повідомлення друкується лише тому, що ядро ​​виявило цю проблему для себе і тепер буде відповідно коригуватися.

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

Сумніваюсь, що повідомлення означає критичну ситуацію. І я це базую на припущенні, що ви вже знаєте, якби це було критично.


2
Цитуючи цю ж статтю, деякі сучасні процесори також забезпечують постійний лічильник тимчасових марк: Останні процесори Intel включають TSC з постійною швидкістю (ідентифікований прапором stal_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.