ระบบป้องกัน Spectre V2 ใน kernel ของ Linux บน CPU Intel ทำให้แอพทำงานช้าลง

Linus Torvalds ผู้บริหารสูงสุดของ Linux ได้ออกมาเปิดเผยว่าระบบป้องกัน Spectre V2 ที่ชื่อว่า Hyper-Threading ใน kernel ของ Linuxทำให้ประสิทธิภาพการทำงาน CPU ของ Intel ลดลงถึง 50%

ระบบป้องกันนี้ได้ถูกเพิ่มใน Linux 4.20 และ Linux ตั้งแต่เวอร์ชั่น 4.19.2 ลงไป ซึ่งใช้ชื่อเรียกว่า STIBP (Single Thread Indirect Branch Predictors) มีไว้เพื่อป้องกันมัลแวร์ขโมยรหัสผ่าน คีย์การเข้ารหัส และไฟล์สำคัญที่อยู่ในหน่วยความจำตรงส่วนที่ผู้ใช้ทั่วไปไม่ควรเข้าถึงได้

นอกจากนี้ยังมี Tim Chen วิศวกรประจำศูนย์ Intel’s Open Source ได้ออกมาแสดงความเห็นเกี่ยวกับผลกระทบของ STIBP ซึ่งสอดคล้องกับ Torvalds ว่าการรัน perlbench ด้วย STIBP บนชุดทดสอบ SpecInt Rate 2006 พบว่า มีอัตราการทำงานช้าลงถึง 21%

จากผลการทดสอบของ Tim Chen แสดงให้เห็นว่า ความแตกต่างของการทำงานที่ลดลงนั้นขึ้นอยู่กับปริมาณทั้งหมดและฮาร์แวร์ที่ใช้

อีกทั้งยังมี Arjan van de Ven นักวิชาการของ Intel และผู้พัฒนา Linux kernel ก็เห็นด้วยกับการตั้งค่า STIBP ให้เป็นปิดการใช้งานเป็นค่าเริ่มต้นอีกด้วย

สำหรับ Torvalds มีความเห็นว่าไม่จำเป็นต้องยกเลิกการใช้งาน STIBP แต่ไม่ควรตั้งค่าเปิดใช้งานเป็นค่าเริ่มต้น เพราะ STIBP เป็นวิธีที่ดีที่สุดแล้วในการป้องกัน Spectre V2 ตอนนี้

ส่วนทาง OpenBSD ได้ออกมาแนะนำว่าให้ปิด Intel Hyper-Threading โดยให้เหตุผลด้านความปลอดภัยเป็นหลัก

สำหรับบทสรุปของทางเลือกเกี่ยวกับ STIBP มีดังนี้

  • เพื่อจุดประสงค์ด้านความปลอดภัยให้เปิดใช้งาน STIBP กับ Hyper-Threading เพื่อเป็นการป้องกันการทำงานทั้งหมด ซึ่งอาจทำให้ซอฟต์แวร์บางตัวทำงานช้าลง
  • เพื่อจุดประสงค์ด้านความปลอดภัยให้เปิดใช้งาน STIBP แต่ปิดการใช้งาน Hyper-Threading เนื่องจากการทำงานทั้งหมดนั้นไม่จำเป็นต้องใช้ หรือต้องการลดช่องโหว่อื่นๆ จาก HT-linked
  • หากไม่สนใจเรื่องความปลอดภัยใดๆ ให้ปิดการใช้งาน STIBP แต่เปิดการใช้งาน Hyper-Threading แทนเพราะงานที่ทำทั้งหมดนั้นต้องการใช้ประโยชน์จาก Hyper-Threading
  • หากไม่สนใจเรื่องความปลอดภัยใดๆ ให้ปิดการใช้งาน STIBP และปิดการใช้งาน Hyper-Threading เนื่องจากการทำงานทั้งหมดนั้นไม่จำเป็นต้องใช้ หรือต้องการลดช่องโหว่อื่นๆ จาก HT-linked

ที่มา : The Register