การเปลี่ยนแปลงในนาทีสุดท้ายที่ส่งในวันอาทิตย์และรวมเข้าด้วยกันก่อน Linux 5.19-rc1 ปิดใช้งานการโหลดไมโครโค้ดล่าช้าโดยค่าเริ่มต้นสำหรับโปรเซสเซอร์ x86/x86_64 ในสถานการณ์ที่น่าเศร้า

การเปลี่ยนแปลงจะปิดใช้งานการโหลดล่าช้าตามค่าเริ่มต้นของการสนับสนุนไมโครโค้ดตามค่าเริ่มต้น โดยเปลี่ยนชื่อจาก”MICROCODE_OLD_INTERFACE”เป็น”MICROCODE_LATE_LOADING”และตอนนี้จะเตือนและทำให้เคอร์เนลเสียหายเมื่อไมโครโค้ดถูกโหลดล่าช้า

สถานการณ์สรุปได้ดังต่อไปนี้ด้วยเอกสารประกอบใหม่:

การโหลดไมโครโค้ดล่าช้า เมื่อระบบทำงานและดำเนินการตามคำสั่งเป็นธุรกิจที่ยุ่งยาก และควรหลีกเลี่ยง ถ้าเป็นไปได้. ลำดับของการซิงโครไนซ์คอร์ทั้งหมดและเธรด SMT เป็นการเต้นที่เปราะบางซึ่งไม่รับประกันว่าคอร์จะไม่ซอฟต์ล็อคหลังจากการโหลด ดังนั้นใช้สิ่งนี้โดยยอมรับความเสี่ยงของคุณเอง การโหลดล่าช้าจะทำให้เคอร์เนลเสียหายด้วย

ในคำขอดึง Thomas Gleixner สรุปว่า”ปิดใช้งานการโหลดไมโครโค้ดล่าช้าโดยค่าเริ่มต้น เว้นแต่ว่าผู้คน [ฮาร์ดแวร์] จะทำงานร่วมกันและระบุเวอร์ชันขั้นต่ำที่จำเป็น ในส่วนหัวของไมโครโค้ดสำหรับการตัดสินใจอย่างมีข้อมูลเพียงครึ่งเดียว เป็นเพียงลอตเตอรีและเสีย”

แนวทางปฏิบัติที่ดีที่สุดแนะนำให้ใช้การอัปเดตไมโครโค้ดของ CPU ในเวลาบูตเริ่มต้นด้วยการโหลดก่อนเวลาและการอบไมโครโค้ดใน initrd การที่ CPU ทำงานอย่างถูกต้องบนไมโครโค้ดล่าสุดได้สำเร็จนั้นมีความสำคัญมากกว่าในทุกวันนี้ เมื่อพิจารณาถึงความรุนแรงของข้อบกพร่องของ CPU เช่น ช่องโหว่ในการดำเนินการเก็งกำไรของ Spectre และปัญหาเด่นอื่นๆ ในช่วงไม่กี่ปีที่ผ่านมา

บันทึกข้อความเคอร์เนลสรุปการโหลดไมโครโค้ดล่าช้าว่าเป็นอันตรายและทำให้เคอร์เนลเสียหาย รายละเอียดเพิ่มเติมภายในคำขอดึงที่มีเกียรตินี้หากสนใจ

Categories: IT Info