ตั้งแต่เดือนพฤศจิกายนปีที่แล้วมีรายงานข้อผิดพลาดของเคอร์เนลจากวิศวกรของ Canonical หลังจากพบว่าคอนโทรลเลอร์ Intel Thunderbolt USB บนแล็ปท็อปหลายเครื่อง”เสีย”หลังจากกลับมาทำงานต่อในระบบ ปัญหานั้นได้รับการแก้ไขแล้วด้วย Linux 6.4 และการแก้ไขทั่วไปนี้อาจช่วยฮาร์ดแวร์อื่น ๆ ได้เช่นกัน

รายงานข้อบกพร่องของเคอร์เนลนี้ถูกเปิดขึ้นเมื่อเดือนพฤศจิกายนปีที่แล้ว หลังจาก Canonical พบแล็ปท็อป Intel Comet Lake บางรุ่น คอนโทรลเลอร์ Thunderbolt USB ไม่ทำงานอีกต่อไปหลังจากที่ระบบกลับมาทำงานบน Linux เป็นการยากที่จะดีบักจนกระทั่ง Mika Westerberg จาก Intel ซึ่งเป็นหัวหน้างาน Thunderbolt ของเคอร์เนล Linux สามารถรับมือกับฮาร์ดแวร์ที่ได้รับผลกระทบ ซึ่งอย่างน้อยก็รวมถึงแล็ปท็อป Dell หลายรุ่น ท้ายที่สุดพบว่าส่งผลกระทบต่อคอนโทรลเลอร์ Intel Titan Ridge xHCI และวิธีแก้ไขคือปล่อยให้เคอร์เนลรออุปกรณ์นานขึ้นเมื่อเริ่มระบบต่อ

ด้วย Linux 6.4 โค้ดการจัดการพลังงาน PCI ของเคอร์เนลจะช่วยให้อุปกรณ์ PCIe พร้อมใช้งานนานขึ้นหลังจากเริ่มระบบใหม่ โดยทำตามแนวทางที่คล้ายกันซึ่งเคอร์เนล Linux ดำเนินการไปแล้วระหว่างการรีเซ็ตอุปกรณ์ PCIe Westerberg อธิบายไว้ใน แพทช์ ไปยังรหัสไดรเวอร์ PCI ทั่วไป:

“ข้อกำหนด PCIe กำหนดว่าอุปกรณ์อาจใช้เวลาถึง 1 วินาทีในการกู้คืนจากการรีเซ็ต และการหน่วงเวลาเดียวกันนี้ถูกกำหนดเมื่อออกจาก D3cold (ตามนั้น เกี่ยวข้องกับการรีเซ็ตด้วย) อุปกรณ์อาจขยายการหน่วงเวลา 1 วินาทีนี้ไปจนถึงการสิ้นสุดสถานะการร้องขอการลองใหม่ และเรารองรับการหน่วงเวลาดังกล่าวใน Linux ด้วยขีดสูงสุด 60 วินาที เฉพาะในเส้นทางรหัสรีเซ็ตเท่านั้น ไม่ใช่ในเส้นทางรหัสการทำงานต่อ

อย่างไรก็ตาม อุปกรณ์มี ปรากฏขึ้นคือ Intel Titan Ridge xHCI ซึ่งต้องการการหน่วงเวลานานกว่าในเส้นทางโค้ดดำเนินการต่อ ด้วยเหตุนี้ทำให้เส้นทางโค้ดดำเนินการต่อใช้การหน่วงเวลาแบบเดียวกันนี้มากกว่าเส้นทางรีเซ็ต”

เนื่องจากเป็นการแก้ไขรหัสไดรเวอร์ทั่วไปและไม่เฉพาะเจาะจงสำหรับ Intel Titan Ridge xHCI เป็นไปได้ว่ามันอาจช่วยฮาร์ดแวร์แปลก ๆ อื่น ๆ ได้เช่นกัน

หนึ่งซับที่ให้เวลาเพิ่มเติมสำหรับอุปกรณ์ PCIe เพื่อให้พร้อมใช้งานในเรซูเม่ถูกส่งไปเมื่อสัปดาห์ที่แล้วโดยเป็นส่วนหนึ่งของ การเปลี่ยนแปลง PCI สำหรับ Linux 6.4 การดึง PCI นั้นยังมีวิธีแก้ปัญหา ASPM สำหรับ Chromebook ตัวควบคุม PCIe ของ Qualcomm ที่เปิดใช้งาน async probing โดยค่าเริ่มต้นเพื่อลดเวลาการบูต และการเปลี่ยนแปลงฮาร์ดแวร์อื่นๆ อีกมากมาย

Categories: IT Info