Ingo Molnar ส่งการอัปเดตตัวกำหนดตารางเวลาที่กำหนดไว้สำหรับเคอร์เนล Linux 6.5 ในวันนี้ สิ่งที่เห็นได้ชัดเจนที่สุดจากการเปลี่ยนแปลงตัวกำหนดตารางเวลาของ CPU คือการเพิ่มความสมดุลของโหลด SMP (Hyper Threading) สำหรับ Intel Core CPUs ของการออกแบบแบบไฮบริดที่มีแกน P และ E ผสมกัน

การปรับปรุงตัวกำหนดตารางเวลาเพื่อประโยชน์ของ CPU ไฮบริดของ Intel คือการหลีกเลี่ยงการโยกย้ายงานที่ไม่จำเป็น คำขอดึงข้อมูลของวันนี้สรุปสถานการณ์ได้อย่างสวยหรูดังนี้:

หลีกเลี่ยงการย้ายที่ไม่จำเป็นภายในโดเมน SMT บนระบบไฮบริด

ปัญหา:

ในระบบ CPU แบบไฮบริด (ตัวประมวลผลที่มีส่วนผสมของแกน SMT ความถี่สูงกว่าและแกนที่ไม่ใช่ SMT ที่มีความถี่ต่ำกว่า) ภายใต้รหัสเก่า CPU ที่มีลำดับความสำคัญต่ำกว่าจะดึงงานจาก คอร์ที่มีลำดับความสำคัญสูงกว่าหากพี่น้อง SMT มากกว่าหนึ่งคนไม่ว่าง ส่งผลให้มีการย้ายงานที่ไม่จำเป็นจำนวนมาก

วิธีแก้ปัญหา:

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

นี่เป็นเพียงหนึ่งในหลาย ๆ การปรับปรุงสำหรับเคอร์เนลลินุกซ์ที่วิศวกรของ Intel ได้ทำในช่วงไม่กี่ปีที่ผ่านมาเพื่อประโยชน์ของ Alder Lake และโปรเซสเซอร์รุ่นใหม่ที่มีการออกแบบแบบไฮบริด โดยรวมแล้ว Alder Lake และใหม่กว่านั้นอยู่ในเกณฑ์ที่ดีบน Linux แต่บางครั้งอาจมีพฤติกรรมหลัก P/E ที่เล่นโวหารพร้อมกับภารกิจที่ไม่มีที่สิ้นสุดของ Intel เพื่อเพิ่มประสิทธิภาพเพิ่มเติมภายใต้ Linux

Scheduler Pull ยังเพิ่มคุณลักษณะการเพิ่มประสิทธิภาพการทำงานใหม่สำหรับ Energy Aware Scheduling (EAS) เพื่อพิจารณาความขัดแย้งของ CPU ในความถี่ การใช้งาน EAS สูงสุด และการเลือก CPU ที่ยุ่งที่สุดในการโหลดบาลานซ์ ในทางกลับกัน การบูสที่รันได้นี้สามารถปรับปรุงการใช้งาน CPU สำหรับเวิร์กโหลดบางอย่างได้

Categories: IT Info