Kernel

Lesz XFS a 2.4-es kernelben?

Címkék

Tegnap Keith Owens bejelentette a 2.4.23-as kernelhez az SGI-s XFS split patcheket. Az XFS csoport időnként készít olyan patcheket, amelyben csak az XFS filerendszer core változásai szerepelnek, de az egyéb patchek (mint például a kdb, acl, dmapi) nem. A core patcheket azért adják ki, mert remélik, hogy a disztribútorok, tesztelők hasznosnak találják majd és alkalmazzák/tesztelik őket.

Az ismert, hogy az XFS a 2.6-os kernel része elég régóta (pontosabban a 2.5.36 óta, amelybe tavaly szeptemberben mergelte be Linus az XFS kódot).

Nathan Scott - Keith Owens bejelentésének apropóján - felkérte Marcelo Tosattit, hogy olvassza be a 2.4-es kernelbe az XFS filerendszer használatához szükséges alapvető változásokat. Tosatti válaszában elutasította a kérést:

``Úgy gondolom, hogy az XFS egy 2.6-os funkció. A 2.6 jelenleg már elegendően stabil arra, hogy az emberek használják''Nathan tovább próbálkozott, mondván, hogy a változások kicsik, és nem érintenek másik filerendszereket. Kérte Marcelot, hogy olvassza be az XFS-t a mainline kernelbe, mert az XFS állandó fejlesztés alatt áll, nagy telepített felhasználói bázisa van, és a kernelfán kívül évek óta karban van tartva.

Valószínűleg azért került elő az XFS bolvasztásának kérdése most, mert tegnap Marcelo kijelentette, hogy a 2.4.24-es lesz az az (valószínűleg) utolsó stabil kernel, amelybe újabb funkciók, driverek kerülhetnek. A későbbiekben a 2.4-es kernelhez csak bugfixek és biztonsági javítások lesznek már csak elérhetőek.

Az XFS felhasználók mindenesetre reménykednek, hogy beolvasztásra kerül a kedvenc naplózó filerendszerük.

A thread itt kezdődik.

Marcelo Tosatti: A Linux 2.4 jövője

Címkék

Marcelo Tosatti - a 2.4-es stabil kernelsorozat karbantartója - mai levelében felvázolta a szándákait a 2.4-es kernel jövőjével kapcsolatban:

``Hi,

Az célom az ezzel az emaillel, hogy tisztázzam az álláspontomat a 2.4.x jövőjével kapcsolatban.

[A] 2.6 napról-napra egyre stabilabb, és remélhetőleg még ebben a hónapban vagy januárban látjuk is majd megjelenni.

Amint említettem, a szándékaim:- A 2.4.24-ig azoknak a problémáknak a javítása, amelyek erőszakosabb változtatásokat igényelnek. Lesznek új driverek elfogadva ebben a periódusban (pl. a Cyclades PC300 driver, input userlevel driver támogatás, vagy más ésszerű driverek amelyek előjöhetnek)

- a 2.4.25-től csak a kritikus/biztonsági problémák javítására kerül sor''

Marcelo levele itt.

Új kernel, új GrSecurity patch

Címkék

Brad elkészítette a GrSecurity új verzióját a 2.4.23-as kernelhez.

Letöltés:

grsecurity-1.9.13-2.4.23.patch

gradm-1.9.13.tar.gz


A bejelentés:

Date: Sun, 30 Nov 2003 19:48:08 -0500

From: spender@grsecurity.net

Reply-To: grsecurity@grsecurity.net

To: grsecurity@grsecurity.net

Subject: [grsec] grsecurity 1.9.13 for 2.4.23 released

I've just released grsecurity 1.9.13 for the 2.4.23 kernel. 2.0-rc4

will be out in a few days. Changes in 1.9.13 are:

* performance enhancements

* PaX updates including PT_GNU_STACK and PT_GNU_HEAP support

* documentation updates

* a fix for an initrd problem.

-Brad

A Linux processz ütemező II.

Címkék

(A cikksorozat első része itt.)

Időszelet

-----------

Az időszelet egy olyan numerikus érték, amely meghatározza, hogy egy taszk mennyi ideig futhat, mielőtt a preemptálás bekövetkezik. Az ütemező irányelv (scheduler policy) határozza meg az alapértelmezett időszelet nagyságát. Ez nem könnyű feladat. A túl hosszú időszelet a rendszer gyenge interaktív teljesítményét okozhatja; a rendszert használó felhasználóban nem alakul ki az az érzés, hogy a programok párhuzamosan futnak. Ha viszont az időszelet túl rövid, akkor jelentős lesz az elvesztegetett processzoridő, mert a gyakori processzek közti kapcsolgatás jelentős overhead-del jár. Ebben az esetben a rendszer jelentős időt fordít arra, hogy gyakran kapcsolgat az éppen futó processzről a következő futtatandó processzre és vissza. Tehát az ütemezőnek meg kell találni a középutat a túl hosszú és a túl rövid időszelet között. Mindezt úgy, hogy a CPU függő és az I/O függő processzeknek is jó legyen. Az I/O függő processzek nem igényelnek hosszú időszeleteket, míg a processzor függő processzek hosszú időszeletekért könyörögnek (például azért, hogy a gyorsítótáraikat (cache) ``forrón'' tartsák).

Ennek fényében azt a következtetést vonhatjuk le, hogy a hosszú időszelet rosszabb interaktív teljesítményt ad. Számos operációs rendszeren ezen a megfigyelésen alapult az ütemező tervezése. Ezekben az operációs rendszerekben az alapértelmezett időszelet viszonylag kicsi, például 20 millisec.

A Linux kihasználja azt az előnyt, hogy a magasabb prioritási értékkel rendelkező processzek mindig futnak. A Linux ütemező felnyomja az interaktív processzek prioritását, és engedélyezi számukra, hogy gyakrabban futhassanak. A Linux ütemező - összehasonlítva más rendszerekkel - relatíve magas alapértelmezett időszelet értéket ad (a 2.6.0-test11 kernelben a minimum timeslice 10ms, az alapértelmezett 100ms, és a maximum 200ms - kernel/sched.c). Továbbá a Linux ütemező dinamikusan, a prioritás alapján határozza meg a processz időszeletét. Ez lehetővé teszi, hogy a magasabb prioritással rendelkező, fontosabb processzek hosszabb ideig és gyakrabban futhassanak. A dinamikus időszelet és prioritás implementálása robosztus ütemezési teljesítményhez vezet.Megjegyzendő, hogy a processzek nem használják fel egyszerre a rendelkezésükre álló processzoridőt. Például, egy olyan processz, amely 100 millisec időszelettel rendelkezik, nem fog 100 millisec időt futni egyszerre, kockáztatva ezzel, hogy azonnal elveszíti a futási jogát. Helyette inkább ötször újraütemeződik, és 5 x 20 millisec időt fut. Ily módon a nagyobb időszelet kedvez az interaktív processzeknek is - mert nem kell felhasználniuk a nagy időszeletet egyszerre, viszont a nagyobb időszelet biztosítja számukra, hogy futhassanak olyan hosszan amilyen hosszan az lehetséges.

Vajon mi történik olyankor, ha a processz felhasználja az egész időszeletét? Ha a processz időszelete letelik, akkor a processzt lejártnak (expired) tekinti az ütemező. Az a processz amelyik nem rendelkezik időszelettel, nem futhat egészen addig, amíg az összes processz időszelete le nem telik (azaz, amíg az összes processznek 0 nem lesz a megmaradt időszelete). Ezen a ponton az összes processz időszelete újrakalkulálódik. A Linux ütemező egy érdekes algoritmust alkalmaz annak érdekében, hogy az időszelet felhasználást kezelje. Erről majd később.

(Megjegyzés: Az időszeletet hívják más rendszereken quantum-nak és processzor szeletnek is. A Linux időszeletnek hívja.)

Processz preemptálás

-------------------------

Mint említettem, a Linux operációs rendszer preemptív. Amikor a processz a TASK_RUNNING állapotba lép, a kernel ellenőrzi, hogy a prioritása magasabb-e az éppen végrehajtás alatt álló processz prioritásánál. Ha igen, akkor az ütemező felveszi a processzt és futtatja. Továbbá, amikor a processz időszelete lejár (eléri a 0-át), akkor preemptálódik, akkot az ütemező egy másik processzt fog kijelölni futtatásra.

Az ütemezési irányelv akcióban

------------------------------------

Tételezzünk fel egy olyan rendszert, ahol két futtatandó taszk van. Az egyik egy szövegszerkesztő, a másik egy video enkóder. A szövegszerkesztő I/O függő, mert idejének legnagyobb részét azzal tölti, hogy a felhasználó billentyű leütéseire vár (az nem lényeges ebből a szempontból, hogy ki milyen gyorsan tud gépelni). Feltételezzük azt, hogy amikor a felhasználó leüt egy billentyűt, akkor azt szeretné, hogy a szövegszerkesztő azonnal reagáljon, és jelenítse meg a kívánt karaktert, vagy tegye egyéb dolgát. A szövegszerkesztővel ellentétben a video enkóder processzor függő. Attól eltekintve, hogy felolvassa az adat folyamot a diszkről, majd később kiírja a lemezre, ideje nagy részét azzal tölti, hogy a video kodeket alkalmazza az adatra. Itt a dolog nem időkritikus olyan szepmpontból, hogy mikor kezdődik el az enkódolás (millisec-ekben gondolkodjuk!), most vagy fél másodperccel később. Ezt a felhasználó nem veszi észre. Természetesen minél előbb, annál jobb.

Ezen a rendszeren az ütemező magasabb prioritást és nagyobb időszeletet ad a szövegszerkesztőnek, mint a video enkódernek, mert a szövegszerkesztő interaktív. A szövegszerkesztőnek bőséges időszelet áll rendelkezésére. Mivel a szövegszerkesztő magasabb prioritással rendelkezik, mint a video enkóder, lehetősége van preemptálni a video enkódert, ha az szükséges (pl. billentyű leütésnél). Ez biztosítja azt, hogy billentyű leütésre a szövegszerkesztő azonnal reagálhasson akkor is, ha a video enkóder fut. Ez a működés egy kicsit hátrányos a video enkódernek, de az a tény hogy a szövegszerkesztő csak váltakozva fut, lehetővé teszi a video enkóder számára, hogy kisajátíthassa a maradék időt. Ily módon biztosítja az ütemező mindkét alkalmazás maximális teljesítményét.

Folytatása következik.

Az írás Robert M. Love hasonló című írásán alapul.

Linus Torvalds: Linux 2.6.0-test11 ``Beaver in Detox''

Címkék

Hmm, Linus érdekes neveket ad mostanában a teszt kerneleknek. A Detox ott is ugyanazt jelentheti? :-)

Megjelent a 2.6.0-teszt11-es Linux kernel. Linus azt mondta, hogy azoknak akik azon gondolkodtak, hogy megfelelő név-e a ``Stoned Beaver'' (2.6.0-test10) egy kernelnek, azoknak örömmel jelenti be, hogy a Beaver elment a Detox-ba. Ezzel egy időben Linus nekilátott a Hálaadás napi ünnepségeknek.

Mivel az elkövetkezendő napokat azzal fogja tölteni, hogy pulykát tol az arcába, arra kér mindenkit, hogy senki ne zaklassa azzal, hogy patcheket küld, mert úgysem olvassa el a leveleit.A 2.6.0-test11 aktuális változásai között találhatjuk az aic7xxx driver vizsgálatát. Kiderült, hogy ez a driver hibás a test10-ben. Ingo talált egy olyan tesztprogramot, amely kimutatta, hogy a do_fork() használatakor hibák vannak. Emellett néhány firewire fix és egyéb kisebb javítás kapott helyet a 2.6.0-test11-ben.

Az ünnep után összeülnek Andrew Mortonnal, és eldöntik, hogy merre tovább. Test12? Final?

Linus levele itt.

A 2.6-os kernel decemberre várható

Címkék

Andrew Morton: ``Úgy gondolom, hogy a 2.6.0-test10 körülbelül azon a szinten van fejlettségében, mint amilyenen a 2.4.17-es kernel.''

A 2.6-os Linux mag decemberre várható, és sokkal stabilabb lesz érkezésekor, mint elődei. Ez a 2.6-os kernel karbantartója Andrew Morton mondta.

A jelenlegi teszt verzió - a 2.6.0-test10-es - az (valószínűleg) utolsó teszt verzió, és a 2.6-os kernel végleges verziója ez év végén fog megjelenni, hacsak valami komolyabb hiba nem jelentkezik.

A 2.6-os kernel - összehasonlítva a jelenlegi stabil 2.4-es kernelsorozattal - számos új funkcióval jelentkezik majd. Az egyik ilyen legfontosabb tulajdonság az, hogy az új kernel sokkal jobban fogja támogatni a sok processzoros szervereket.

``A 2.4-es kernel valóban véget ért a 4 vagy 8 processzoros rendszerek támogatásánál.'' - mondta Morton. ``A 2.6-os kernelnél meglepődnék, ha valami megkadályozná a felskálázást egészen 32 processzorig.''

Linus a 2.6-os kernelt ez év júniusára jósolta, de majd fél évet csúszik a kiadása. Hasonló csúszás volt a 2.4-es kernel kiadásakor is, amely 2001. januárjában jelent meg.Andrew Morton az egyik jobb keze Linus Torvalds-nak jelenleg. Egyike azon embereknek, akiket karbantartóknak hívnak, és akik a Linux kernel egyes fő területeiért felelősek. Andrew területe jelenleg a 2.6-os kernel. Torvalds és Morton a hivatalos munkájukban is közel vannak egymáshoz. Mindegyikük az Open Source Development Lab (OSDL) munkatársa.

Andrew szerint a 2.6-os kernel sokkal jobban tesztelt lesz a megjelenésekor, mint amilyen a 2.4-es volt.

``Úgy gondolom, hogy a 2.6.0-test10 körülbelül azon a szinten van fejlettségében, mint amilyenen a 2.4.17-es kernel.''

Ezzel nem mindenki ért egyet. A SuSE vezető technológusa Juergen Geck egy interjúban azt mondta októberben, hogy akkora architektúrális változások mentek végbe a 2.6-os kernelben, hogy azok problémákat vethetnek fel.

Az, hogy a Linux disztribútorok bizonyos késlekedéssel reagálnak az új stabil kernelek befogadásával kapcsolatban, nem újdonság. A Red Hat például csak a 2.4.2-es kernel megjelenésekor alkalmazta először termékeiben az új rendszermagot.

Ennek ellenére a SuSE és a Red Hat is alkalmaz bizonyos dolgokat a 2.6-os kernelből a 2.4-es kernelben. Azt a műveletet, amelynek során egyes újabb alkotórészeket visszatesznek a stabil kernelbe, backport-olásnak neveznek.

Egy kevésbé technikai, inkább áttekintő összefoglalót találsz a 2.6-os kernelről News.com-on itt.

Andrew Morton: Linux 2.6.0-test10-mm1

Címkék

Megjelent az első -mm patch a 2.6.0-test10 test kernelhez. A patch kisebb javításokat tartalmaz. A device mapper és a RAID frissítéseket tesztelni kell. Ebbe a patchbe kerültek bele a problémás PNP patchek is. Ha a kernel furcsamód elszállna a bootkor, akkor ezeket a patcheket vissza kell állítani (revert) a broken-out könyvtárban található szétdarabolt patchekből.

A stuff letölthető innen. AKPM levele itt.

Az interaktivitás patch rontja a teljesítményt?

Címkék

Többen aggodalmukat fejezték ki az LKML-en Con Kolivas interaktivitást kiszámító patchével kapcsolatban. A patch nem olyan régen került be a 2.6-os fejlesztői kernelbe, az ütemező részbe. Egyesek szerint a patch nem hasznos, hanem kifejezetten nagy az overhead-je. Egyes források szerint akár 20%-kal lassíthatja a CPU-t. Vannak olyanok is, akik szerint nincs szükség a 2.6-os kernelben ilyen interaktivitás tuningra a modern CPU-knál.Ezért Con most egy olyan patchet készített, amely teljesen eltávolítja a kernelből az ``interactivity estimator''-t. A patch demo célból készült, feladata, hogy bebizonyítsa, hogy a patch nem okoz ilyen horribilis overhead-et.

A patch alkalmazásakor eltávolításra kerül az ``interactivity estimator'', de maga az ütemező érintetlen marad. A patch kb. 350 sort távolít el a kernel forrásából.

A patch Con levelében itt.