Linus Torvalds keményen visszautasította a RISC-V változtatásokat a Linux 6.17-ben: „ez szemét”

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

A Linux 6.17 fejlesztési ciklusában komoly vitát kavart, hogy Linus Torvalds elutasította a RISC-V architektúrához kapcsolódó változtatásokat. A döntés oka egyrészt az volt, hogy a kódot túl későn küldték be a merge window végén, másrészt pedig Torvalds szerint több, nem RISC-V-specifikus, ráadásul rossz minőségű elem is bekerült a javaslatba. A fejlesztőknek így legkorábban a 6.18-as verzióban lesz lehetőségük újra próbálkozni – de szigorúbb feltételek mellett.

A visszautasítás oka

A RISC-V fejlesztői a 6.17-es kernel merge window utolsó napjaiban nyújtották be a frissítési csomagot, ami többek között az alábbi funkciókat tartalmazta:

  • RISC-V IOMMU támogatás ACPI-alapú rendszerekhez
  • ACPI BGRT támogatás a gyártói logók bootolás közbeni megjelenítéséhez
  • Hibajavítási megoldások (errata workarounds)
  • Xmipsexectl kiterjesztés támogatása
  • MMU típusának beolvasása Device Tree-ből
  • Teljesítményjavítások az endian konverziós rutinokban
  • Kprobetrace támogatás
  • MPXY és RPMI SBI kiterjesztések
  • Control-Flow Integrity támogatás felhasználói térben futó folyamatokhoz

Bár ezek önmagukban hasznos fejlesztések, Torvalds szerint a csomagban több olyan elem is szerepelt, amely nem volt RISC-V specifikus, és ráadásul általános kernel fejlécekbe (generic header files) került be, ezzel rontva a kód minőségét és érthetőségét.

Torvalds kemény kritikája

A levelezőlistán Torvalds egy konkrét példát is kiemelt:
A make_u32_from_two_u16() nevű segédfüggvény szerinte „haszontalan szemét”, amely rontja a kód olvashatóságát. Torvalds úgy érvelt, hogy a kifejezés egyszerűen leírható lenne például (a << 16) + b formában, amely egyértelműen mutatja a művelet logikáját. A segédfüggvény ezzel szemben eltakarja a működést, és bizonytalanságot okoz a bájtsorrend értelmezésében.

Torvalds üzenetének lényege:

  • Nincs helye nem RISC-V specifikus kódnak a RISC-V patchben
  • Nem lehet általános kernel fejléceket „szeméttel” szennyezni
  • Nem elfogadható a merge window vége felé nagy, vitatható tartalmú patch-et küldeni

Következmények

A RISC-V változtatások így nem kerültek be a 6.17-es verzióba, a fejlesztőknek legkorábban a 6.18-as kernel fejlesztési ciklusának elején nyílik új esélyük. Torvalds hangsúlyozta, hogy a következő próbálkozásnak:

  • időben kell érkeznie,
  • ne legyen benne nem releváns és gyenge minőségű kód.