TSC_DEADLINE dinonaktifkan karena Errata

15

Saya mengirim komputer saya ke pabriknya untuk diagnosa dan membantu masalah keluaran video yang dimilikinya. Mereka memperbarui BIOS. Sejak itu saya mendapatkan

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

Saya tidak memiliki paket mikrokode atau ucode yang diinstal sebelumnya dan saya tidak terbiasa menerima pesan ini.

Saya telah menghubungi pabrikan dan mereka menjawab "tidak ingat nomor tiket Anda tetapi ragu kami memperbarui BIOS", jadi mereka tidak terlalu membantu.

Itu boot dan berfungsi, tetapi apakah TSC_DEADLINE penting atau berguna?

Satu-satunya hal yang dapat saya temukan tentang hal ini adalah ini: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Tapi itu sepertinya hanya berlaku untuk VirtualBox, dan dalam hal apa pun saya sudah menjalankan kernel 4.14 jadi saya akan berpikir jika komit itu akan memperbaiki masalah saya, itu sudah akan terjadi.

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
sumber
Sebagian besar distribusi Linux menyediakan paket linux-firmwareyang menyediakan pembaruan firmware yang diperlukan. Di Debian Anda mungkin harus mengaktifkan contribdan / atau non-freemendapatkannya. Patch yang Anda tautkan dimaksudkan untuk menyelesaikan situasi konyol ketika kernel mematuhi firmware yang ketinggalan zaman ketika mem-boot di mesin virtual, yang jelas-jelas tidak memiliki firmware ...
AlexP
2
@AlexP linux-firmwaretidak akan memperbarui mikrokode, Anda perlu intel-microcodeatau amd64-microcodeuntuk itu (setidaknya pada Debian dan turunannya).
Stephen Kitt

Jawaban:

17

Kemunculan tiba-tiba dari pesan ini agak aneh; itu menunjukkan firmware Anda yang diperbarui tidak lagi meningkatkan mikrokode CPU Anda, sedangkan firmware sebelumnya yang Anda miliki, lakukan. Aneh ... (Skenario lain yang mungkin adalah bahwa CPU Anda awalnya tidak mendukung batas waktu TSC sama sekali , dan firmware Anda sekarang meningkatkan mikrokode ke versi yang menyatakan dukungan untuk batas waktu TSC, tetapi telah membuat kesalahan membuat itu tidak berguna.)

Bagaimanapun, dukungan tenggat waktu TSC baik untuk dimiliki, tetapi tidak penting. Kernel memiliki kerangka kerja yang rumit untuk ketepatan waktu dan penanganan peristiwa waktunya; Batas waktu TSC adalah salah satu kemungkinan implementasi penanganan acara, tetapi bukan satu-satunya. Pada CPU yang mendukungnya, itu bagus untuk dimiliki, karena sangat efisien.

Untuk meningkatkan mikrokode Anda dan mudah-mudahan mengaktifkan kembali dukungan tenggat waktu TSC, Anda dapat menginstal paket pembaruan mikrokode dari Debian contribdan non-freerepositori. Untuk melakukannya, edit Anda /etc/apt/sources.listuntuk memastikan bahwa definisi repositori Debian Anda termasuk main, contribdan non-free; lalu lari

sudo apt update

diikuti oleh

sudo apt install intel-microcode

(untuk CPU Intel) atau

sudo apt install amd64-microcode

(untuk CPU AMD). Setelah selesai, reboot, dan mikrokode Anda harus diperbarui. Jika dukungan batas waktu TSC diaktifkan kembali, Anda tidak akan melihat pesan kesalahan saat boot, dan Anda akan melihat tsc_deadline_timerdi flagsbaris /proc/cpuinfo.

Wiki Debian memiliki informasi lebih lanjut tentang pembaruan mikrokode .

Stephen Kitt
sumber
Terima kasih atas perbaikannya, Stephen. Saya baru saja memutakhirkan laptop saya dari debian stretch ke buster, dan menemukan pesan kesalahan tenggat waktu TSC yang sama saat boot-up. Perbaikan Anda berfungsi seperti pesona!
Qiang Xu