เมล็ด
หลังจากสองเดือนของการพัฒนา Linus Torvalds เปิดตัวเคอร์เนลใหม่ของ Linux เวอร์ชัน 5.10เวอร์ชันที่มาพร้อมกับสถานะของสาขาที่มีระยะเวลาการสนับสนุนที่ยาวนานซึ่งการอัปเดตจะได้รับการเผยแพร่อย่างน้อยสองปี
การเปลี่ยนแปลงที่สำคัญ ได้แก่ เวอร์ชันใหม่นี้มีการรองรับกลไกการป้องกัน MemTag สำหรับระบบ ARM64 ตัวเลือกการติดตั้ง "nosymfollow" การเพิ่มประสิทธิภาพ Ext4 ที่สำคัญ การแก้ไข XFS 2038, การเรียกใช้ระบบ process_madvise ใหม่, ปรับปรุงการรองรับ AMD SEV ผ่านการเข้ารหัสการลงทะเบียน CPU, ความสามารถในการหยุดโปรแกรม BPF ชั่วคราว
รุ่นใหม่ ได้รับการแก้ไข 17470 รายการจากนักพัฒนาปี 2062 ขนาดแพทช์: 64MB (การเปลี่ยนแปลงที่ได้รับผลกระทบกับไฟล์ 15101 เพิ่มโค้ด 891932 บรรทัดลบ 619716 บรรทัด) ประมาณ 42% ของทั้งหมด การเปลี่ยนแปลงที่นำมาใช้ใน 5.10 เกี่ยวข้องกับไดรเวอร์อุปกรณ์การเปลี่ยนแปลงประมาณ 16% เกี่ยวข้องกับการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 13% เกี่ยวข้องกับสแต็กเครือข่าย 3% เกี่ยวข้องกับระบบไฟล์และ 3% เกี่ยวข้องกับ ระบบย่อยภายในเคอร์เนล
ข่าวหลักใน Linux 5.10
จากการเปลี่ยนแปลงหลัก ๆ ที่เกิดขึ้น เราจะพบว่าสำหรับ ext4 มีการเพิ่มโหมดการยืนยันด่วน (fast_commit) ซึ่ง ช่วยลดความล่าช้าในการทำงานของไฟล์จำนวนมากได้อย่างมาก เนื่องจากการล้างข้อมูลเมตาไปยังดิสก์เร็วขึ้นเมื่อเรียกใช้ fsync () ภายใต้สถานการณ์ปกติการรัน fsync () จะซิงโครไนซ์ชุดข้อมูลเมตาที่ซ้ำซ้อน ในโหมด fast_commit เฉพาะข้อมูลเมตาที่จำเป็นในการกู้คืนระบบไฟล์ในกรณีที่เกิดข้อขัดข้องเท่านั้นที่จะถูกโอนไปยังรีจิสทรีเร่งความเร็วในการเรียก fsync () และปรับปรุงประสิทธิภาพของการดำเนินการที่จัดการข้อมูลเมตาอย่างแข็งขัน
ในขณะที่สำหรับ Btrfs ประกอบด้วยการเพิ่มประสิทธิภาพการทำงานที่สำคัญที่เกี่ยวข้องกับการดำเนินการ fsync (). การลดความขัดแย้งของ log mutex ส่งผลให้ประสิทธิภาพเพิ่มขึ้น 4% และเวลาในการตอบสนองลดลง 14% เมื่อรันเกณฑ์มาตรฐาน dbench กับไคลเอ็นต์ 32 ตัว การกำจัดการคอมมิตเพิ่มเติมสำหรับลิงก์และการเปลี่ยนชื่อทำให้แบนด์วิดท์เพิ่มขึ้น 6% และลดเวลาในการตอบสนองลง 30% การ จำกัด fsync ให้รอเฉพาะการเขียนซ้ำทำให้ประสิทธิภาพเพิ่มขึ้น 10-40%
นอกจากนี้ การใช้งาน Btrfs ของ direct I / O (direct io) ถูกย้ายไปยังกรอบงาน iomap
XFS เพิ่มการเปลี่ยนแปลงข้อมูลเมตาของ inode เพื่อแก้ไขปัญหาการล้นประเภทข้อมูล 32-bit time_t ในปี 2038 เพิ่มการเปลี่ยนแปลงที่คล้ายกันโดยย้ายตัวจับเวลาล้นไปที่ปี พ.ศ. 2468 ไปยังรหัสสำหรับคำนวณเวลาโควต้าดิสก์ รูปแบบ XFS V4 เลิกใช้แล้วผู้ใช้ควรอัปเดต FS เป็นรูปแบบ V5 แต่มีเวลามากพอสำหรับการอัปเดตเนื่องจากการรองรับ V4 จะยังคงอยู่จนถึงปี 2030 XFS ได้เปลี่ยนขนาดของอินพุตไอโหนดด้วย btree ช่วยให้สามารถตรวจสอบความซ้ำซ้อนได้มากขึ้นและเวลาในการติดตั้งเร็วขึ้น
สำหรับระบบย่อย FUSE ใช้การสนับสนุนการดำเนินการ DAX เพื่อเข้าถึงระบบไฟล์โดยตรงโดยข้ามแคชของเพจโดยไม่มีอุปกรณ์ล็อกระดับแอปพลิเคชันที่ใช้เพื่อหลีกเลี่ยงข้อดีของแคชสองชั้นในการจัดระเบียบการเข้าถึงร่วมกับระบบแขก ไดเร็กทอรีและไฟล์ Virtiofs ยังเพิ่มการรองรับสำหรับการติดตั้งพาร์ติชันที่แยกจากกันโดยมีจุดเชื่อมต่อที่แตกต่างกันบนระบบโฮสต์
ระบบไฟล์ F2FS เพิ่มโหมดเก็บขยะใหม่ ATGC (Age Threshold Garbage Collection) ปรับปรุงการรองรับอุปกรณ์ NVMe แบบแบ่งเขตและการคลายการบีบอัดข้อมูลที่บีบอัดได้เร็วขึ้น
ใน F2FS และ Ext4 วิธีการทำงานกับชื่อไฟล์ได้รับการออกแบบใหม่โดยไม่คำนึงถึงตัวพิมพ์ใหญ่ มีการตัดสินใจที่จะรวมการใช้งานชื่อไฟล์ที่ไม่คำนึงถึงขนาดตัวพิมพ์โดยการย้ายโค้ดที่เกี่ยวข้องไปยังไลบรารีทั่วไป
การเปลี่ยนแปลงที่สำคัญอีกประการหนึ่งคือใน อินเทอร์เฟซ I / O แบบอะซิงโครนัส io_uring ที่เพิ่มความสามารถในการสร้างวงแหวนที่ จำกัด ที่สามารถแชร์ได้อย่างปลอดภัยด้วยกระบวนการที่ไม่น่าเชื่อถือ คุณลักษณะนี้ช่วยให้แอปพลิเคชันพื้นฐานสามารถเลือก จำกัด การเข้าถึงเฉพาะตัวอธิบาย ของแต่ละไฟล์สำหรับใช้ในแอปพลิเคชันของบุคคลที่สามผ่าน io_uring รวมทั้งแฟล็ก PIDFD_NONBLOCK ถูกเพิ่มไปยังการเรียกระบบ pidfd_open () เพื่อสร้างตัวอธิบายไฟล์ที่ไม่ล็อก (คล้ายกับ O_NONBLOCK สำหรับ pidfd)