Linux 7.3: Hét évvel fiatalabbá teszi a régi gépedet

A Linux fejlesztői sosem állnak le, és most a 7.3-as kernel egy olyan újítást hoz, ami alapjaiban változtathatja meg a régi számítógépek teljesítményét, különösen játékok alatt. Felejtsük el a drága hardverfrissítéseket, ha a régi gépünkkel is sokkal simább élményt kaphatunk!

A mai hardverárak mellett nem csoda, ha sokan azon gondolkodnak, hogyan hozhatnák ki a legtöbbet meglévő, esetleg már több éves gépükből. Nos, a Linux közösség a jelek szerint erre is gondol. A legújabb, 7.3-as kernelverzió, amely hamarosan megérkezik, ígéretes fejlesztésekkel kecsegtet, különösen a régebbi, vagy „krumpli” hardverrel rendelkezők számára. Egy Intel mérnök, Peter Zijlstra vezetésével bevezetett változások a cgroup ütemezésben drámai módon javíthatják a játékok futását, és sokkal simább felhasználói élményt biztosíthatnak.

Mi a baj a régi ütemezéssel?

Ahogy Peter Zijlstra is kiemelte, a korábbi cgroup ütemezési rendszer problémás volt. Ennek oka az úgynevezett „intermediate entries”, azaz köztes bejegyzések, amelyek felhalmozódtak, és elfedték a feladatok valós futtathatóságát. Képzeljük el, mintha egy dugóba kerültünk volna, ahol a sok autó (feladat) között nem látszik, melyik haladna tovább, ha lenne szabad út. Ez a probléma különösen a játékoknál jelentkezett látens késleltetések formájában, ami micro-stutteringhez, vagyis apró, idegesítő akadozásokhoz vezetett. Még akkor is, ha az átlagos képkockaszám (FPS) jónak tűnt, a képkockák közötti idő (frametime) ingadozása rontotta az élményt. Pontosan ez az, amiért a 1% Low FPS értékek sokkal jobban jelzik a játékélmény simaságát, mint az átlagos FPS – ha a legrosszabb 1% képkocka ideje is elfogadható, akkor sokkal kevésbé lesz zavaró az akadozás.

A "flatten the pick" és az EEVDF csoda

Az új "flatten the pick" (laposítsd a csúcsot) nevű patch-sorozat éppen ezt a problémát orvosolja. Az Enhanced Earliest Eligible Virtual Deadline First (EEVDF) ütemezőt áthelyezik egyetlen futtatási sorba (single runqueue). Ez azt jelenti, hogy a cgroup hierarchia megmarad, de a tényleges feladatok ütemezése sokkal hatékonyabbá válik, elkerülve a korábbi torlódásokat. Zijlstra szavaival élve: „A latency probléma a köztes bejegyzések miatt van, amelyek a feladatok kombinációját reprezentálják, és ezáltal elhomályosítják a feladatok futtathatóságát. Az itt alkalmazott megközelítés az, hogy a cgroup hierarchia változatlan maradjon; beleértve a köztes enqueue/dequeue műveleteket, de a tényleges EEVDF futtatási sor kívülre kerül.”

Ez a technikai változás azt eredményezi, hogy a rendszer sokkal jobban tudja kezelni a különböző feladatok prioritásait, különösen a játékoknál, ahol a folyamatos, alacsony késleltetés kritikus. A benchmarkok, amelyeket Zijlstra egy régebbi Intel Sandy Bridge rendszeren, AMD Radeon Polaris grafikával végzett, lenyűgöző eredményeket mutattak: jelentős FPS javulás és sokkal alacsonyabb frametime, még a cgroup által okozott terhelés mellett is.

Az alapértelmezett cgroup_mode is megváltozik, „concur” módra, ami pontosabb, de erőforrás-igényesebb ütemezést tesz lehetővé. Ez a változás a "flattened runqueue" előkészítését szolgálja, ahol a hierarchikus súly sokkal fontosabbá válik.

Miért fontos ez nekünk, játékosoknak?

Ez a fejlesztés egyértelműen a régebbi hardverrel rendelkező Linux felhasználók életét könnyíti meg. Nincsenek illúzióink, egy 10 éves CPU nem fogja a legújabb AAA címeket ultrán futtatni, de a minimális FPS drámai javulása és a frametime stabilitása sokkal simább, élvezhetőbb játékélményt eredményezhet. Ahogy az XDA Developers is kiemeli, ez a "krumpli" hardver számára is áldás. A Phoronix által említett tesztek során egy régi Intel Core i7-2600K és egy AMD Radeon RX 580 párossal a minimális FPS 4-ről 29-re nőtt, az átlagos FPS 47,5-ről 59,2-re, a maximális képkocka késleltetés (max frametime) pedig 121,2 ms-ról 30 ms-ra csökkent. Ez egy elképesztő, közel hétszeres javulás a legrosszabb esetekben, ami azt jelenti, hogy a bosszantó akadozások nagyrészt eltűnnek. Ez a 7.3-as kernel frissítés igazi áttörést jelenthet a Linuxos játékosok számára.

Összefoglalva, az újítások a következők:

  • EEVDF áthelyezés: Az ütemező egyetlen futtatási sorba kerül, csökkentve a késleltetést.
  • Cgroup_mode változás: Az alapértelmezett mód „concur” lesz, ami pontosabb ütemezést tesz lehetővé.
  • Minimális FPS ugrásszerű növekedése: Tesztek alapján akár hétszeres javulás a legrosszabb képkockáknál.
  • Frametime stabilitás: Sokkal egyenletesebb képkockák közötti idő, ami simább játékélményt biztosít.
  • Támogatás a régi hardvereknek: A fejlesztés különösen a kevésbé erős rendszereken érezteti hatását, meghosszabbítva azok élettartamát.

A patch-ek már bekerültek a tip/tip.git "sched/core" Git ágába, és várhatóan be is nyújtják őket a Linux 7.3-as összevonási ablakába augusztus végén. Ez azt jelenti, hogy néhány hónap múlva már mi is élvezhetjük ezeket a fejlesztéseket a saját gépeinken. A hardverkrízis közepette ez a fajta optimalizáció felbecsülhetetlen, és újabb érv amellett, hogy a Linux valóban komolyan vehető alternatíva legyen a játékosok számára, különösen azoknak, akik nem akarnak vagyonokat költeni új alkatrészekre. Várjuk szeretettel a 7.3-as kernelt, amely megmutatja, hogy a szoftveres optimalizáció néha többet ér, mint egy drága hardverfrissítés.