[Firmware Bug]: TSC_DEADLINE disabled due to Errata
Kali ini kita akan membahas bagaimana cara workaround jika mendapatkan pesan error seperti berikut ini. Untuk lebih tepatnya, pesan error lengkapnya seperti ini : [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0xb000020 (or later). Apa yang harus kita perhatikan jika mendapatkan error seperti ini?
Pesan error seperti ini bisa kamu dapatkan dengan menelusuri pesan log yang berada di /var/log/messages. Sebelum kita bahas lebih jauh lagi, saat ini kita sedang membicarakan error yang ada di Centos 7.9 baremetal server (Dedicated Server) ya.
Alternatif lainnya, pesan error ini bisa diperoleh dengan execute command berikut.
dmesg -t |grep microcode
Kurang lebih output pesannya seperti ini.
# dmesg -t |grep microcode [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0xb000020 (or later) TAA: Vulnerable: Clear CPU buffers attempted, no microcode MDS: Vulnerable: Clear CPU buffers attempted, no microcode microcode: sig=0x406f1, pf=0x1, revision=0xb000010 microcode: Microcode Update Driver: v2.01 tigran@aivazian.fsnet.co.uk, Peter Oruba
Jadi untuk yang satu ini biasanya kita harus pastikan kalau microcode_ctl dari server ini sudah dipasang ke versi latest. Begitu juga dengan firmware hardware servernya. Bagaimana saya bisa tahu microcode_ctl versi saat ini?
Gunakan command ini :
#rpm -q microcode_ctl
microcode_ctl-2.1-73.11.el7_9.x86_64
Jika merujuk versi dari microcode yang ada sejak postingan ini dibuat, microcode yang saya gunakan di server saya adalah versi paling akhir dari patch yang ada. Jadi tidak ada yang bisa kita lakukan dari sisi software microcode. Ternyata, setelah di cek, firmware dedicated server ini kebetulan menggunakan SuperMicro server, masih menggunakan yang versi jadul yaitu tahun 2015.
Oleh karena itu kita harus force update firmware hardware server ini. Jika sudah, pastikan juga kernel Linux kamu juga harus up to date.
Mungkin banyak yang bertanya, apasih microcode_ctl itu? Microcode yang kita sebutkan di atas ini adalah penghubung antara tipe dari CPU server dengan instruction set yang ada. Jadi jika diibaratkan, CPU server seperti Intel Xeon E5 dual series mempunyai instruction set yang sangat banyak. Untuk menunjang hal tersebut di kernel Linux, maka harus menggunakan microcode sebagai penghubung bahasa instruction set dari Intel ke kernel Linux.
Terima kasih sudah mau mampir, semoga bermanfaat.