Kernel

cfq + io prioritások

Címkék

Jens Axboe - a SuSE kernelhackere - nice szinteket épített a CFQ (completely fair queueing) IO ütemezőbe (a CFQ IO schedulerre az jellemző, hogy működése során megpróbálja egyenlő részre felosztani a rendelkezésre álló IO sávszélességet a processzek között). Hogy működnek ezek az nice szintek?

A processzhez hozzá van rendelve egy nice szint, amely a 0-tól 20-ig levő tartományban bármennyi lehet. A 0-ás és a 20-as szintek különleges szintek. A 0-ás szint jelentése: csak akkor engedélyezzük a processz számára az IO műveletet, ha a diszk ``idle'' állapotban van, a 20 jelentése: a processz IO-ját valósidejűnek (realtime) tekintjük. A valósidejű IO-val rendelkező processz fér hozzá a diszkhez elsőként. Az 1-19 szint valahol a kettő között van, azaz az IO 5%-95%-át ``engedélyezi'' a processz számára.

Mire is jó ez?Gondoljuk bele abba a helyzetbe, hogy CD-t írunk, és közben a háttérben olyan feladat fut, mint a sok diszk művelettel járó ``updatedb''. Ebben az esetben megadhatjuk, hogy a ``cdrecord'' 20-as szinten fusson valósidőben, míg az ``updatedb'' a 0-son. Ezzel biztosítjuk, hogy az írás szempontjából kritikus művelet magasabb prioritást kapjon, mint a kevésbé fontos frissítési művelet.

Mivel tudjuk a nice szinteket állítani? Jens készített egy user-space eszközt a feladat ellátására. A neve ``ionice''. Használata:

# ionice -n20 bash

Ez azt jelenti, hogy a bash valósidőben fut. A használat során figyelembe kell venni, hogy a nice szint öröklődik a fork során, így az összes ebből a shellből indított program valósidőben fog futni.

# ionice -n0 dbench 32

Ezzel a paranccsal 0-ás szinten futtatjuk a ``dbench'' nevű programot, amely kizárólag akkor fog csak futni, ha a diszk éppen idle állapotban van.

Az új processzek számára alapértelmezett IO nice szint 10.

Jens Axboe levele, patch, magyarázat itt.

Andrew Morton: Linux 2.6.0-test9-mm2

Címkék

Andrew Morton - a 2.6-os kernel karbantartója - ma kiadta a második -mm patchet a 2.6.0-test9 kernelhez. A patch random javításokat tartalmaz. Egy kis tuning a Nick Piggin féle anticipatory IO ütemezőhöz (a 2.6 jelenlegi alapértelmezett elevatora, amellyel voltak kisebb gondok az elmúlt napokban) és némi readahead tuning, amelyek segítségével jobb eredményt lehet elérni az adatbázis tesztekben.

Az anticipatory IO ütemező egyelőre még a deadline IO ütemező (a régi elevator kód) mögött van egy kicsit a teljesítményben a random IO tesztekben (adatbázis műveletek) de reménykedjünk.Az NVIDIA nForce chipset tulajdonosoknak jó hír, hogy az ethernet interface-hez kiadott GPL-es driver már elérhető az -mm2-ben.

Andrew offline lesz pár napig.

Mivel a 2.6.0 kernel fejlesztése a finiséhez érkezett (egyes hírek szerint már akár decemberben lehet stabil 2.6.0-ás kernel), kéretik fokozott intenzitással tesztelni az új kerneleket. A 2.6.0-test sorozat teljesen stabil, május vége óta kizárólag ezt használom az összes gépemen. Nyugodtan lehet (azért fokozott figyelemmel, ugye) tesztelni. Egyesek szerint masszívabb (szerintem is) mint a jelenlegi stabil 2.4 kernelsorozat utolsó tagjai. A bugokat az LKML-re (linux-kernel@vger.kernel.org) kéretik jelenteni.

A stuff letölthető innen.

AKPM levele itt.

Marcelo Tosatti: Linux 2.4.23-pre9

Címkék

Marcelo kiadta a 2.4.23-as kernel kilencedik pre verziojat. A bejelentesben azt olvashatjuk, hogy a 2.4.24-pre-ig mar csak bugfixeket fogad a karbantarto. Nehany korabban beolvasztott problemas ACPI patch eltavolitasra kerult a jelenlegi prepatch-bol.

Indexelt kernelfák

Címkék

Robert Watson egy olyan weboldalt készített, amelyen több népszerű, nyílt forrású operációs rendszer kernelének forrását is meg tudjuk tekinteni.Amellett, hogy online böngészhetjük a forráskódokat, a kódok egyes soraihoz rendelt indexszekkel könnyedén manőverezhetünk a forráskódban. Az egyes operációs rendszerek kernelének belső felépítésével ismerkedőknek hasznos segítség lehet a tanulásban.

Hogy mely rendszerek kernelforrását találjuk meg az oldalon?

A FreeBSD head, releng51, releng50, releng49, releng4 és releng3-at, plusz a Linux 2.4.22 és 2.6.0-test9 kernelekét. Robert tervezi a felsorolt OS-ek mellett a OpenBSD, NetBSD és DragonFly BSD kernelek forrását is elhelyezni az oldalon.

Látogasd meg az oldalt itt.

Dolgok, amelyeket úgy tűnik, hogy a Longhorn jól csinál

Címkék

Hans Reiser - a ReiserFS projekt kiötlője - küldött a minap egy érdekes levelet az LKML-re. A levélben arról ír, hogy a redmondi fejlesztők jónak látszó dolgokat próbálnak a Windows éveken belül megjelenő Longhorn verziójába beleépíteni. Felvetette, hogy esetleg a Linux kernelfejlesztőknek is lépniük kellene ebbe az irányba, nehogy egyes területeken lemaradjanak a fejlesztéssel. Ebből egy hosszú thread alakult ki.Reiser szerint a Longhorn fejlesztői arra keszülnek, hogy tranzakciós támogatást integráljanak bele az operációs rendszerbe. Minden XML-ben lesz, támogatást készítenek a filerendszerben való böngészhetőséghez. Az XML lekérdezés és böngészhetőség támogatása egy egységes formában fog megjelenni.

A levélre sok válasz érkezett. Sokak csak vaporware-nek nevezték a Longhorn ezen funkcióját. Ted Tso - veterán kernelfejlesztő - szerint nem biztos, hogy a Linux fejlesztőknek követniük kellene a windows fejlesztőket. Ha a windowsban megjelenik egy új funkció, akkor azt nem biztos, hogy nekik ugyanazon módon kell implementálniuk.

Kérte Reisert, hogy csak azért, mert egy vaporware sajtóbejelentést olvasott a Microsoft-tól, ne gondolja, hogy a.) az MS majd egy SQL optimalizátort fog beépíteni a Longhorn kernelébe, b.) hogy ha mégis megteszi, akkor a Linux fejlesztőknek követniük kellene a rossz példát, és ugyanazt kellene tenniük.

Az érdekes thread itt.