A Linux 6.17-rc5 kernel kiadás előtt Jens Axboe beküldött egy kisebb javítást az io_uring alrendszerhez, amely a korábbi erőforrás-kezelési átalakításhoz kapcsolódott. Linus Torvalds azonban a beolvasztást követően visszavonta a változtatást, mert a javítás szerinte nem hozott valódi megoldást. A módosítás lényege az volt, hogy a kód a kvmalloc_array hívás helyett a kvcalloc függvényt használja, amely automatikusan nullázza az allokált memóriát. Linus rámutatott, hogy az eredeti kódban már ott volt a __GFP_ZERO flag, tehát a gyakorlatban nem változik semmi, így nem értette, mi indokolja a commit létét.
Tartalomjegyzék

A „Link” hivatkozásokkal kapcsolatos kritika
A helyzetet súlyosbította, hogy a commit üzenetében szereplő hivatkozás sem adott további magyarázatot. Linus kifejezetten élesen bírálta az automatikusan generált „Link” mezőket, amelyek szerinte túl gyakran feleslegesek, és csak időpazarlást okoznak. Elmondása szerint ezek a hivatkozások ritkán vezetnek ténylegesen hasznos információhoz, például hibajelentésekhez vagy részletesebb magyarázatokhoz, és többnyire csak ismétlik azt, ami már a kernel commitban szerepel. Torvalds hangsúlyozta, hogy a hasznos linkeket szívesen látja, de az értelmetlen automatizmusok csak megnehezítik a kernel fejlesztési munkálatait.
Behúztam ezt a javítást, de a hozzá tartozó magyarázat zavaros volt, és maga a patch sem tűnt értelmesnek, ezért végül visszavontam.
A változtatás lényege annyi, hogy a kód a kvmalloc_array() helyett kvcalloc()-ot használ. Első ránézésre ez rendben van, hiszen a kvcalloc() automatikusan kinullázza a lefoglalt memóriát. Csakhogy a korábbi kódban már eleve szerepelt a __GFP_ZERO flag, vagyis a viselkedés pontosan ugyanaz maradt. Tudomásom szerint az egyetlen különbség a két függvény között az, hogy a kvcalloc() maga egészíti ki a __GFP_ZERO jelzővel a hívást. Ezért nem látok benne valódi javítást.
Ami igazán bosszantó, hogy a commitban szereplő „Link:” hivatkozás sem adott semmi többletinformációt. Azt reméltem, valamilyen hibajelentésre vagy oops-riporthoz vezet, ami megmagyarázza, miért szükséges ez a módosítás. Ehelyett ugyanarra mutatott, ami már eleve a commitban is benne volt. Ez teljesen felesleges, és csak az időmet pazarolja. Linket akkor érdemes hozzáadni, ha valóban tartalmaz plusz, releváns információt.
Éppen ezért nem olvasztottam be ezt a patch-et. Már az is bosszant, hogy egyáltalán foglalkoznom kellett vele, és ha valaki tényleg azt várja, hogy befogadjam, akkor valós magyarázatot akarok, nem egy üres hivatkozást. Tudom, hogy morgós vagyok, de a fő feladatom az, hogy értelmet találjak a pull requestekben. Ezért különösen utálom azokat az automatikusan generált dolgokat, amelyek semmit nem tesznek hozzá, csak megnehezítik a munkát.
Ismét bevontam Konstantint is, mert ez újabb példája annak, hogyan ártanak az ilyen automatizmusok. Pont a múlt héten érvelt amellett, hogy ezek hasznosak. Itt a bizonyíték, hogy épp ellenkezőleg: csak gondot okoznak. Abba kellene hagyni ezt a felesleges automatizált baromságot.
Javaslatok a jövőre nézve
Linus felvetette, hogy ha a jövőben maradnak is a linkek, azok legalább a kernel patchsorozatok kísérőleveleire mutathatnának, mert így több háttérinformációhoz lehetne jutni a kernelbe való beolvasztás pillanatában. Hosszabb távon pedig akár mesterséges intelligenciával is lehetne szűrni, hogy melyik link érdemli meg, hogy bekerüljön, például ha élénkebb vita alakult ki egy adott kernel javítás körül. A hangsúly mindenesetre azon van, hogy a fejlesztési folyamatban a linkek valódi értéket képviseljenek, és ne csupán üres hivatkozások legyenek, amelyek feleslegesen terhelik a karbantartókat.

