เมื่อสัปดาห์ที่แล้ว Tejun Heo ได้ส่งการเปลี่ยนแปลงคิวงานสำหรับเคอร์เนล Linux 6.5 และรวมถึงสิ่งเพิ่มเติมที่น่าสนใจ

รหัสคิวงานสำหรับ Linux 6.5 เพิ่มการตรวจจับและตรวจสอบ CPU แบบเข้มข้นโดยอัตโนมัติ ชุดแพตช์จาก Tejun ที่ดำเนินการต่อเนื่องมาหลายเดือนอธิบายว่า:

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

แพตช์เซ็ตนี้ทำให้เวิร์กคิวตรวจหารายการงานที่เข้มข้นของ CPU โดยอัตโนมัติตามการใช้ CPU หากรายการงานใช้มากกว่าเกณฑ์ (10 มิลลิวินาทีภายใน ค่าเริ่มต้น) ของเวลา CPU โดยจะมีการทำเครื่องหมายว่าใช้ CPU มากโดยอัตโนมัติเมื่อได้รับการกำหนดเวลา ซึ่งจะปลดบล็อกการเริ่มต้นรายการงานต่อ CPU ที่ค้างอยู่

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

ตอนนี้ด้วย Linux 6.5 รายการงานต่อ CPU ที่มีน้ำหนักมากเหล่านี้จะถูกแยกออกจากการจัดการพร้อมกันเพื่อหลีกเลี่ยงความล่าช้าในการดำเนินการรายการงานอื่นๆ

รายละเอียดเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงคิวงานสำหรับ Linux 6.5 ผ่านทาง ดึงนี้

Categories: IT Info