ما الجديد في Linux 6.18-rc3: تغييرات النواة والسياق

  • تتصدر SMB Direct تصنيف 6.18-rc3 مع تحسينات المتانة على العميل والخادم.
  • حصل كل من XFS وio_uring والشبكات وDRM على إصلاحات عملية وموزعة بشكل جيد.
  • تضع خريطة الإصدار 6.17 كإصدار مستقر و6.12/6.6 كإصدار LTS رئيسي.

لينكس 6.18-rc3

المرشح الثالث للإطلاق للمستقبل 6.18 وصول بدون ضجة، وبنفس النبض الهادئ الذي يُقدّره نظام النواة. ووفقًا للينوس تورفالدز نفسه، فإن الأرقام معتدلة والدورة تسير بشكل طبيعي؛ بمعنى آخر، يقوم Linux 6.18-rc3 بتلميع وإصلاح وضبط النظام دون الحاجة إلى ثورات، مع التركيز على الإصلاحات المنتشرة في جميع أنحاء الشجرة.

في مذكرته الموجزة، يشير تورفالدز إلى أن الجزء الأكبر من هذه الدفعة هو إصلاحات SMB Direct، سواءً من جانب العميل أو الخادم، مع عدد كبير من تصحيحات الضبط الدقيق. أما الباقي، فيُوزّع كالمعتاد: نصفها تقريبًا يؤثر على برامج التشغيل (مع إضافة روابط DeviceTree أيضًا) و الباقي عبارة عن إصلاحات متنوعة: XFS، الشبكات، io_uring، DRM، Rust Binder والشركة. إذا كنت مهتمًا بالتفاصيل الدقيقة، فإليك سجلًا موجزًا ​​يتضمن عشرات التغييرات التي نراجعها حسب النظام الفرعي أدناه.

الميزات الجديدة الرئيسية في Linux 6.18-rc3

تبرز كتلة SMB Direct في هذا التحليل الأسبوعي. يقوم كلٌّ من عميل وخادم SMB بتعديل الاعتمادات وقوائم الانتظار لمنع أي تراجع أو نقص في الموارد. ترفع عدة أجزاء من النظام الفرعي مستوى الأداء من خلال ضمان... تحتفظ هياكل الإرسال/التنظيف بمساحة كافية وتلك الحالات المنفصلة تعمل على إيقاظ جميع الخيوط المنتظرة بقوة.

بالإضافة إلى ذلك، يتم إدخال الإصلاحات في XFS لمنع حلقات الانشغال في جامع القطاعات، وتخزين المناطق المفتوحة مؤقتًا في i_private، وتشديد التعامل مع خيارات التثبيت القديمة، إصلاح الأقسام الحساسة لفحص الروابط وحظرهاتركز تغييرات XFS في rc3 هذا على الاستقرار والتشخيص الواضح للمعلمات القديمة.

النصف الآخر من الفطيرة هو المزيج المعتاد من برامج التشغيل والمنصات: من DRM/AMD وDRM/Xe إلى Rockchip، مرورًا بشبكات mlx5/mlx5e، ومعالجات Realtek وMicrel PHY، وUFS/Qualcomm، وUSB/xHCI DbC، وغيرها الكثير. إنه rc3 "مُدمج"، حيث القيمة هي مجموع التصحيحات الصغيرة التي تمنع الأعطال أو تسربات الذاكرة أو عدم تطابق التوقيت.

SMB وSMB Direct: التركيز على المتانة

El سجل قصير يوضح هذا الجهد المبذول في SMB Direct. من أهم النقاط:

  • يقوم عميل وخادم SMB بضبط مساحة طلبات العمل، مما يمنع الفيضانات ويضمن تصريف QP (ib_drain_qp) بشكل آمن. يتم إدخال العدادات واستهلاكها. رصيد الشحن على المسارات الحرجة.
  • يقوم الخادم بتبسيط إدارة قائمة الأشقاء على مسارات الإرسال (flush/send_done) ويجعل فصل RDMA يوقظ جميع الخيوط في المحاولة الأولى.
  • يتم تعزيز التتبعات في smb3_rw_credits، وإعادة ترتيب العناصر المضمنة بحيث تكون الهياكل متاحة في نقاط التتبع و تم إصلاح الأنواع الموقعة في هياكل ائتمان TCP.

بشكل عام، تهدف تغييرات SMB Direct إلى ضمان سلاسة عمليات نقل RDMA تحت الحمل، وسلوكها المتوقع، وقدرتها على معالجة حالات الخطأ دون ترك أي مشاكل عالقة. هذه تعديلات، وإن كانت طفيفة، إحداث الفارق في البيئات عالية الأداء.

أنظمة الملفات والتخزين

قسم أنظمة الملفات والكتل يتضمن العديد من القطع البارزة:

  • XFS: تجنب حلقات الانشغال، ومناطق التخزين المؤقت، ومنع __GFP_NOFAIL في تهيئة سياق FS، وتحسين الرسائل الخاصة بالخيارات القديمة، و إصلاح الأقفال وعدادات القطاعات.
  • Btrfs: إصلاحات في ref-verify (IS_ERR مقابل NULL)، وتحرير fs_info المهيأة جزئيًا عند حدوث أعطال، وإصلاح في btrfs send لتجنب تكرار عمليات rmdir مع extrefs.
  • EROFS: تقوية التعامل مع الامتدادات المشفرة بشكل ضار لمنع الحلقات و توحيد عمليات البحث السابقة على الصفحات الفرعية الفاسدة.
  • طبقة الكتلة: فرض محاذاة LBA عند استخدام معلومات الحماية (PI) للحفاظ على سلامة المستوى المنخفض.

هناك أيضًا نشاط في scsi/ufs/phy (روابط للتوافقات الجديدة)، وstorvsc لتفضيل القنوات ذات التقارب مع وحدة المعالجة المركزية التي تُصدر عمليات الإدخال/الإخراج، وتعديلات على برامج التشغيل مثل qla4xxx. هذه عناصر، مجتمعةً، تعزيز استقرار وأداء الإدخال/الإخراج في حالات حقيقية.

الشبكات: mlx5/mlx5e، الترابط، HSR والمزيد

على الشبكة الصورة متنوعة، مع التركيز على السائقين عالية الأداء والزوايا قليلة السفر:

  • mlx5/mlx5e: أقنعة سجلات PPHCR في PCAM، وتخطي الاستعلامات إذا كان الجهاز لا يدعم السجل، وإصلاحات RX عند إنشاء skbs من xdp_buffs غير الخطية في طوابير الانتظار القديمة والمتدرجة. أيضًا، إصلاحات في IPsec على أجهزة MPV وdevcom يعيد NULL في حالة وجود أخطاء.
  • الترابط: يتم تحديث مجموعة العبيد في وضع البث ويتم تصحيح الخسائر أو التكرارات المحتملة في إشعارات الأقران.
  • HSR: يمنع إنشاء أجهزة تحتوي على أجهزة تابعة لشبكات أخرى، مما يؤدي إلى إغلاق مسار التكوين غير المتناسق.
  • Gro وgro_cells: يتم تنظيف hwtstamps على مسارات إعادة استخدام skbs و تم تصحيح خلل التوازن في القفل في gro_cells_receive.
  • أخرى: virtio-net يضع حقول التجزئة غير المستخدمة في صفر؛ hibmcge يختار FIXED_PHY؛ dlink يستخدم dev_kfree_skb_any؛ stmmac/rk يصلح وظيفة اختيار الساعة؛ enetc يصلح جمود قفل MDIO وقيمة TRUESIZE.

بشكل عام، تتلقى مجموعة الشبكة تلك الدفعة من التصحيحات التي تمنع المفاجآت أثناء التحميل وتتولى العناية بالتفاصيل في مسارات البيانات التي، في حالة فشلها، تترجم إلى زمن انتقال أو خسائر أو كتل.

الرسومات والعرض: DRM/AMD، DRM/Xe، Rockchip وQR Panic

تتحرك مساحة إدارة الحقوق الرقمية أيضًا، مع تغييرات في الأمن والاستقرار:

  • عرض DRM/AMD: استخدم GFP_NOWAIT في سياق المقاطعة، وزِد الحد الأقصى للرابط، وتجنب عمليات الوصول NULL في link→enc؛ أيضًا، إصلاح مؤشر فارغ على مسارات محددة.
  • DRM/Xe: الحفاظ على علامات VM عند إعادة إنشاء وتقسيم VMs لـ madvise وإخفاء إعادة التعيين التلقائي لـ madvise خلف علامة VM_BIND، مما يؤدي إلى قطع الحواف الخطيرة.
  • Rockchip: قناع SCLIN الصحيح لـ RK3228 في dw_hdmi.
  • drm/panic: عدة تحسينات على "وضع الذعر" مع الشعار وQR: تجنب التداخلات مع الشعار، وضمان هوامش رأسية إيجابية، ومنع التقسيمات على الصفر عندما يكون عرض الشاشة أصغر من عرض الخط و لا تتخطى الصفحات التي تحتوي على بكسلات 24 بت.
  • Intel i915: منع تسرب كائن الذعر عند تخصيص بنيته.

حتى معالج الرسومات (Panthor) خضع لتعديلات لمنع حدوث خلل في نواة النظام من إلغاء تعيين منطقة VA جزئيًا، وهو خطأ مزعج ظهر في سيناريوهات تجزئة الذاكرة. هذه تغييرات، وإن كانت طفيفة، منع الأعطال على أجهزة الكمبيوتر الحقيقية.

مجلد الصدأ والمجلد الكلاسيكي

يواصل Rust Binder تطويره مع العديد من التعديلات: تمت إزالة تحذير بشأن التعيينات اليتيمة، وإعادة إرسال إشعار freeze_notif_done في حالة حدوث حالات غير متوقعة، ومنع حذف FreezeListener في حالة وجود تكرارات معلقة، ولا يتم الإبلاغ عن الإشعارات إلا عند تجميد العملية فعليًا. بالتوازي، يزيل Binder الكلاسيكي فحص "invalid inc weak" الذي لم يعد يُساهم. من ناحية سلسلة الأدوات، يتعرف objtool على وظيفة Rust إضافية باسم 'noreturn' وتم تنظيف التحذير المقطوع في Rust Binder.

io_uring وsqpoll وzc rx

في io_uring هناك العديد من التعديلات الجراحية: تم إصلاح الاستخدام الخاطئ لـ likely() في io_waitid_prep()، وتم تعديل التعليق التوضيحي __must_hold، وتم إصلاح الالتزام التلقائي للمخازن المؤقتة لأوامر uring_cmd multishot و تمت إعادة تقييم محاسبة وحدة المعالجة المركزية sqpoll تم ترك دالة getrusage() لوقت لاحق، وتم تحديث stime بشكل أكثر ذكاءً. كما تمت إضافة مُدخل في MAINTAINERS لـ zcrx.

الهندسة المعمارية وACPI: RISC-V وarm64 وx86

ال معماريات وهي متنوعة ومحددة:

  • RISC-V: تم تعريف pgprot_dmacoherent() للأجهزة غير المتماسكة، ولم تتم طباعة تفاصيل وحدات المعالجة المركزية المعطلة في DT، وتم تسجيل IPI IRQs بأسماء فريدة، وتم تعريف MAX_POSSIBLE_PHYSMEM_BITS لـ zsmalloc و تمت إزالة وحدات الماكرو القديمة غير الضروريةتم أيضًا إصلاح الاستخدامات غير المهيئة في hwprobe والمفتاح المهيأ متأخرًا في vDSO.
  • arm64: في MTE، يتم إلغاء التحذير إذا تم بالفعل وضع علامة على الصفحة في copy_highpage().
  • x86: تعديل رسالة RETBLEED لـ Intel، وإصلاح فحص مراجعة Entrysign لـ Zen1/Naples و يتم تنظيف الكود الميت في عمليات التخفيف.
  • ACPI/الخصائص: تم إصلاح ترتيب الوسيطة في acpi_node_get_property_reference() وإزالة التحذيرات عند تعطيل IOMMU_API في RIMT.

كما يُصلح بعض الأخطاء مثل دالة pcibios_align_resource() في MIPS Malta لقفل نطاقات الإدخال/الإخراج، وموارد لوحة المفاتيح التي تمنع تسجيل i8042. هذه تغييرات صغيرة. تجنب سيناريوهات الجمود أو عمليات التهيئة الهشة.

السائقون والحافلات: SPI، serial، hwmon، GPIO، PCI/ASPM وغيرها

هذا RC يجلب الخير مجموعة من التصحيحات في السائقين:

  • SPI: خريطة dirmap المعطلة في Airoha تعيد الآن الفشل، وتضيف دعمًا ثنائيًا/رباعيًا في exec_op، وتعود إلى الوضع غير DMA إذا حدث خطأ ما، وتصلح ومضات المستويات المتعددة لكل LUN؛ تعيد NXP FSPI ضبط الساعة عند الحاجة، و حدود التردد حسب المصدربالإضافة إلى إضافة تأخير بعد قفل DLL؛ يضيف Intel SPI دعمًا لكثافات 128M والمنصات الجديدة (Arrow Lake-H، Wildcat Lake).
  • التسلسلي وTTY: 8250_dw يتعامل مع الأخطاء عند إعادة التعيين؛ 8250_mtk يعمل على تمكين ساعة الباود ويمررها إلى PM وقت التشغيل؛ sc16is7xx يعمل على مسح الباودات الممكنة غير الضرورية؛ sh-sci يعمل على إصلاح تجاوز FIFO.
  • PCI/ASPM: على منصات DeviceTree، يتم تمكين L0s وL1s فقط، وهو قرار متحفظ لتجنب الحالات غير المعتمدة.
  • GPIO: ACPI يخفف من شدة خطأ الارتداد؛ يضيف gpio-regmap معلمة fixed_direction_output؛ تحدد وحدات IDIO-16
    الحد الأقصى للعناوين الصالحة و عناوين الخطوط الثابتة.
  • Hwmon وpmbus: تم إصلاح تسريبات مرجعية للعقد الفرعية وتحديث معاملات نموذج Max/ISL، بالإضافة إلى تفاصيل حول برنامج تشغيل مروحة GPD.

وبالتوازي، تمت إضافة وحدات متوافقة مع DT إلى SPI Cadence (ZynqMP/Versal-Net)، وRockchip RK3506، وUFS QMP لـ Kaanapali، بالإضافة إلى معرفات الخيار الجديدة (Telit FN920C04 ECM، وQuectel RG255C، وUNISOC UIS7720). ضبط الدعم للأجهزة التي وصلت حديثًا.

الذاكرة والبلاطة وmm/damon

تحظى منطقة الذاكرة أيضًا بالاهتمام: يتم تجنب السباقات التي تحتوي على obj_exts وشروط الارتباك NULL في slab؛ mm/mremap يأخذ في الاعتبار بشكل صحيح التعيين القديم بعد DONTUNMAP؛ يمنع THP استهلاك السم عند تقسيم الصفحات الضخمة؛ ينظف DAMON تسريبات ops_filter و مركزية منطق هدف الحصةفي hugetlbfs، يتم نقل تأكيدات القفل بعد الإرجاعات المبكرة في huge_pmd_unshare().

الأمان والتتبع وKconfig

قطع صغيرة ولكنها مهمة:

  • lib/crypto: يقوم Poly1305 باستعادة التبعيات باستخدام !KMSAN، مما يتجنب التكوينات المتضاربة.
  • تضمين/تتبع: تم إصلاح مساعد العد أثناء التشغيل الفاشل؛ تمت إضافة نقاط تتبع SMB3 لاعتمادات القراءة/الكتابة.
  • تم تحسين مساعدة Kconfig: CONFIG_XFS_RT وتم تكييف الاختبارات/الإحصائيات إلى DEBUG_FS. إصلاحات التبعيات في QCOMTEE والمنصات الأخرى.

هذه تغييرات بسيطة تمنع حدوث مشاكل أثناء تهيئة النواة، وتُسهّل تشخيص أي مشكلة عند بدء التشغيل بشكل صحيح. مجموع هذه التحسينات يُحسّن جودة الحياة. يؤدي إلى تقليل الوقت الضائع.

هذه المراجعة لإصدار 6.18-rc3 تُبرز بوضوح أهمية المتانة على الأداء الفائق. بدءًا من كتلة SMB Direct وتعديلات XFS، وصولًا إلى العدد الهائل من برامج التشغيل والإصلاحات المتعلقة بالشبكات والرسوميات والذاكرة، تشير جميعها إلى نواة أكثر موثوقية. بإضافة خريطة الإصدارات (مع 6.17 كأحدث إصدار مستقر و6.12/6.6 كإصدار LTS المرجعي)، لدينا صورة واضحة للوضع الحالي: التكرار المستمر والدعم طويل الأمد حيثما كان ذلك مهمًا ومسار الهجرة الذي يمكن لكل فريق أن يرسمه بهدوء، مع العلم أي الفروع آمنة وأيها لا تزال في بداياتها.

لينكس 6.18-rc2
المادة ذات الصلة:
يصل Linux 6.18-rc2 بطريقة كبيرة مع إصلاحات رئيسية للرسومات وRust وAMD Zen