TSC_DEADLINE отключен из-за ошибок

15

Я отправил свой компьютер производителю для диагностики и помощи в решении проблемы с выводом видео. Они обновили BIOS. С тех пор я получаю

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)

У меня не было ни одного пакета микрокода или пакета ucode, и я не получал это сообщение.

Я связался с производителем, и они ответили: «Не помню номер вашего билета, но сомневаюсь, что мы обновили BIOS», поэтому они не очень полезны.

Он загружается и работает, но TSC_DEADLINE важен или полезен?

Единственное, что я могу найти по этому поводу, это: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Но, похоже, это относится только к VirtualBox, и в любом случае я уже использую ядро ​​4.14, поэтому я подумаю, что если этот коммит решит мою проблему, он уже будет.

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-amd64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux
RML
источник
Большинство дистрибутивов Linux предоставляют пакет, linux-firmwareкоторый обеспечивает необходимые обновления прошивки. В Debian вам, возможно, придется включить contribи / или non-freeполучить его. Патч, на который вы ссылаетесь, предназначен для решения глупой ситуации, когда ядро ​​соответствует устаревшей прошивке при загрузке на виртуальной машине, которая, очевидно, не имеет никакой прошивки ...
AlexP
2
@AlexP linux-firmwareне будет обновлять микрокод, вам нужно intel-microcodeили amd64-microcodeдля этого (по крайней мере, в Debian и его производных).
Стивен Китт

Ответы:

17

Внезапное появление этого сообщения довольно странно; он предполагает, что ваша обновленная прошивка больше не обновляет микрокод вашего процессора, в отличие от предыдущей прошивки. Weird ... (Другой возможный сценарий является то , что ваш процессор изначально не поддерживает TSC срок на всех , и ваша прошивка теперь обновляет свою микрокод до версии , которая декларирует поддержку TSC срока, но имеет опечаток рендеринга это бесполезно.)

В любом случае, поддержка крайних сроков TSC хороша, но не жизненно важна. Ядро имеет сложную структуру для хронометража и обработки событий по времени; Крайний срок TSC - одна из возможных реализаций обработки событий, но не единственная. Тем не менее, на процессорах, которые его поддерживают, это хорошо, потому что это очень эффективно.

Чтобы обновить ваш микрокод и, надеюсь, снова включить поддержку крайних сроков TSC, вы можете установить пакеты обновления микрокода из Debian contribи non-freeрепозиториев. Для этого отредактируйте ваш файл, /etc/apt/sources.listчтобы убедиться, что определения вашего репозитория Debian включают main, contribи non-free; тогда беги

sudo apt update

с последующим

sudo apt install intel-microcode

(для процессоров Intel) или

sudo apt install amd64-microcode

(для процессоров AMD). После этого перезагрузитесь, и ваш микрокод должен быть обновлен. Если поддержка крайних сроков TSC будет повторно включена, вы не увидите сообщение об ошибке при загрузке, и вы увидите tsc_deadline_timerв flagsстроках /proc/cpuinfo.

Вики Debian содержит больше информации об обновлениях микрокода .

Стивен Китт
источник
Спасибо за твое исправление, Стивен. Я только что обновил свой ноутбук с Debian Stretch до Buster и столкнулся с тем же сообщением об ошибке крайнего срока TSC при загрузке. Ваше исправление работает как шарм!
Цян Сюй