TSC_DEADLINE bị vô hiệu hóa do Errata


15

Tôi đã gửi máy tính của mình đến nhà sản xuất để chẩn đoán và giúp đỡ về vấn đề đầu ra video mà nó đang gặp phải. Họ đã cập nhật BIOS. Kể từ đó tôi đã nhận được

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

Tôi chưa có gói microcode hoặc ucode nào được cài đặt trước đó và tôi không sử dụng để nhận thông báo này.

Tôi đã liên hệ với nhà sản xuất và họ đã trả lời "không nhớ số vé của bạn nhưng nghi ngờ chúng tôi đã cập nhật BIOS", vì vậy chúng không hữu ích lắm.

Nó khởi động và hoạt động, nhưng TSC_DEADLINE quan trọng hay hữu ích?

Điều duy nhất tôi có thể tìm thấy về nó là: https://git.kernel.org/pub/scm/linux/kernel/git/urdy/linux- sóng.git / commit /

Nhưng điều đó dường như chỉ áp dụng cho VirtualBox và trong mọi trường hợp tôi đã chạy kernel 4.14 vì vậy tôi sẽ nghĩ nếu cam kết đó sẽ khắc phục vấn đề của mình thì nó đã có.

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

Hầu hết các bản phân phối Linux cung cấp một gói linux-firmwarecung cấp các bản cập nhật firmware cần thiết. Trong Debian bạn có thể phải kích hoạt contribvà / hoặc non-freeđể có được nó. Bản vá mà bạn liên kết nhằm giải quyết tình huống ngớ ngẩn khi kernel tuân thủ phần sụn lỗi thời khi khởi động trong máy ảo, rõ ràng là không có phần sụn nào ...
AlexP

2
@AlexP linux-firmwaresẽ không cập nhật microcode, bạn cần intel-microcodehoặc amd64-microcodecho điều đó (ít nhất là trên Debian và các công cụ phái sinh).
Stephen Kitt

Câu trả lời:


17

Sự xuất hiện bất ngờ của tin nhắn này là khá kỳ lạ; nó cho thấy phần sụn được cập nhật của bạn không còn nâng cấp vi mã của CPU, trong khi phần sụn trước đó bạn có, đã làm. Weird ... (Một kịch bản có thể là CPU của bạn ban đầu không ủng hộ thời hạn TSC ở tất cả , và firmware của bạn bây giờ được nâng cấp vi của mình cho một phiên bản mà tuyên bố hỗ trợ cho thời hạn TSC, nhưng có errata làm cho nó vô dụng.)

Trong mọi trường hợp, hỗ trợ thời hạn TSC là tốt để có, nhưng không quan trọng. Hạt nhân có một khung công phu để xử lý thời gian và xử lý sự kiện theo thời gian; Hạn chót TSC là một triển khai có thể xử lý sự kiện, nhưng không phải là duy nhất. Trên các CPU hỗ trợ nó, thật tuyệt khi có, vì nó rất hiệu quả.

Để nâng cấp mã vi mô của bạn và hy vọng kích hoạt lại hỗ trợ thời hạn TSC, bạn có thể cài đặt các gói cập nhật vi mã từ kho contribnon-freekho của Debian . Để làm như vậy, hãy chỉnh sửa của bạn /etc/apt/sources.listđể đảm bảo rằng các định nghĩa kho lưu trữ Debian của bạn bao gồm main, contribnon-free; sau đó chạy

sudo apt update

theo dõi bởi

sudo apt install intel-microcode

(đối với CPU Intel) hoặc

sudo apt install amd64-microcode

(đối với CPU AMD). Khi đã xong, khởi động lại và vi mã của bạn sẽ được cập nhật. Nếu hỗ trợ thời hạn TSC được bật lại, bạn sẽ không thấy thông báo lỗi khi khởi động và bạn sẽ thấy tsc_deadline_timertrong các flagsdòng /proc/cpuinfo.

Wiki Debian có nhiều thông tin hơn về các cập nhật vi mã .


Cảm ơn bạn đã sửa chữa, Stephen. Tôi vừa nâng cấp máy tính xách tay của mình từ debian kéo dài lên buster và gặp thông báo lỗi thời hạn TSC tương tự khi khởi động. Sửa chữa của bạn hoạt động như một nét duyên dáng!
Qiang Xu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.