Kernel

Andrew Morton: Linux 2.6.6-mm1

Címkék

Tegnap, a stabil 2.6.6-os Linux kernel kiadása után 5 órával már kint is volt az első -mm patch.

Néhány változás: bk-agpgart.patch

bk-alsa.patch

bk-cifs.patch

bk-cpufreq.patch

bk-driver-core.patch

bk-drm.patch

bk-i2c.patch

bk-libata.patch

bk-netdev.patch

bk-pci.patch

bk-scsi.patch

bk-usb.patch

Letölthető a szokásos helyről, itt.

Változások listája: itt.

Linus Torvalds: Linux 2.6.6

Címkék

Kicsit hosszabb kihagyás után Linus kiadta a stabil 2.6.6-os Linux kernelt. Az új anyagban NTFS, XFS, FAT és CIFS frissítések találhatók. Leállításkori IDE cache-flush javítás, és a szokásos architektúra frissítések: ppc, sparc, s390 és ARM (plusz néhány x86-64 javítás).Az anyag letölthető: patch-2.6.6.bz2, FULL

A változások listája Linus levelében itt.

A kernel patcheléshez segítséget itt találsz.

kexec: rebootoljuk gyorsabban a Linuxot!

Címkék

Pont egy évvel ezelőtt írtam már a kexec-ről. Akkor még csak arról számolhattam be, folyamatban van a fejlesztése az akkor még fejlesztői állapotban levő 2.5-ös Linux kernelhez. Azóta már megjelent a stabil 2.6-os kernel is, úgyhogy nézzük mi változott azóta:

Abban az esetben, ha munkád nem követeli meg azt, hogy rebootold a Linuxod napjában többször, vagy nem dolgozol olyan környezetben, ahol a rendszer pár perces kiesése is gondot okozhat, valószínűleg nem fog érdekelni, hogy az operációs rendszered 20 másodpercet, vagy mondjuk 2 percet bootol. Ellenkező esetben megtennél mindent, hogy minél rövidebb időre csökkentsd a rendszered elindulásának idejét...

A gyors rendszerindítás annyira foglalkoztatja a kernel fejlesztőket is, hogy megszületett a kexec, amely pont ezt hivatott szolgálni. A kexec segítségével elérhetjük azt, hogy egy új Linux kernelt bootoljuk be anélkül, hogy keresztül kellene mennünk a bootloader-en. A kexec megkönnyíti a kernel fejlesztők, szoftver fejlesztők, ISP-k, és más olyan felhasználók életét, akiknek napjában többször is újra kell indítaniuk a gépüket, vagy az újraindítás időtartamát minél kisebbre kell szorítaniuk.

A kexec-nek egyetlen korlátja van jelenleg: csak 32-bites x86 platformon működik. Ahogy a számítógépek fejlődnek, és egyre bonyolultabb lesz a belső felépítésük, úgy számíthaunk arra, hogy egyre hosszabb lesz a rendszerek boot-olási ideje is. Az újraindítások időtartama egyre nagyobb, ha mondjuk sok eszközt kiszolgáló SCSI buszaink vannak, vagy a gépünkben nagy mennyiségű ECC memória van, stb. Az elvégzett tesztek szerint a bootolási idő jelentős részét a firmware szakasz adja (az a szakasz, amikor a rendszer felismeri és ``megszólítja'' a hozzákapcsolt fizikai eszközöket). Ha ezt a szakaszt át tudnánk lépni, akkor jelentősen lerövidíthetnénk a rendszer újraindításának idejét. A kexec pontosan ezt teszi.

Ahhoz, hogy megismerjük a kexec működését, fontos, hogy átlássuk a Linux kernel boot folyamatát. Ez a folyamat két részből áll: a bootloader szakaszból és a kernel szakaszból.

A bootloader szakasz fő részei a hardver szakasz, a firmware szakasz, az első szintű bootloader (first-level bootloader) és a másod szintű bootloader (second-level bootloader). A boot folyamat azzal kezdődik, hogy bekapcsoljuk a számítógépet. Bizonyos inicializálások után az irányítás a firmware-hez kerül. A firmware-t egyes architektúrákon hívjuk "BIOS" -nak is. A firmware felismeri az egyes eszközöket, pl. a memória kontroller(eke)t, busz eszközöket, háttértárakat, stb. Ezután a firmware a beállítások alapján átadja a vezérlést egy minimális bootloader-nek, amelyet Master Boot Record-nak (MBR) is hívunk. Az MBR vagy merevlemezen, vagy eltávolítható eszközön vagy akár ``hálózaton'' is lehet. A következő lépés az, hogy az MBR az irányítást átadja az operációs rendszernek. Ez a feladat már a másod szintű bootloader-re hárul (gyakran ezt nevezik boot loader-nek). Ez a boot loader teszi lehetővé a felhasználónak, hogy kiválassza a futtatandó kernelt, betölti a kernelt a memóriába a megadott paraméterekkel, inicializálja a kernelt, kialakítja a megfelelő futtatási környezetet, majd ``futtatja'' a kernelt.

Az előzőekben ismertetett szakaszokat hivatott áthidalni a kexec, hiszen a következő lépcsőfok már a kernel szakasz, ahol a kernel átveszi az irányítást.

Mi az a kexec?

A kexec Eric Biederman munkája, amely jelenleg is folyamatos fejlesztés alatt áll. A kexec egy kernel patch, amely lehetővé teszi, hogy egy futó kernelből egy másik kernelt indítsunk anélkül, hoyg végig kelljen mennünk a bekapcsolástól a másod szintű bootloader-ig terjedő szakaszokon. Közben nincs hardver reset, nincs detektálás és inicializálás, és semmi olyan lépés, amely lelassíthatná a boot folyamatot.

Hogy működik?

A kexec két részből áll. Egy kernel patch-ből és egy ``user-space'' segédprogramból, amely a kexec-tools névre hallgat. A patchel meg kell foltozni a kernelünket, majd egy kernelt kell fordítani a patchelt forrásból a CONFIG_KEXEC opciót engedélyezve. A kexec-tools segédprogramot le kell fordítani az operációs rendszerünkön.

A kexec használata:

# kexec -l kernel_image -append="kernel_paraméterek"

konkrétabban:

# kexec -l /boot/bzImage -append="root=/dev/hda1"

Ha a már futó kernelt szeretnénk rebootolni, akkor a

# kexec -e

paranccsal adhatunk utasítást erre.



A kexec patcheket és az user-space utility-t letöltheted a legfrissebb 2.6-os kernelekhez innen. Bővebb infót a kexec-ről az IBM developerWorks oldalain olvashatsz itt.

Andrew Morton: 2.6.6-rc3-mm2

Címkék

Andrew kiadta a második -mm patchet a 2.6.6-rc3-hoz. Mint írja semmi extra nincs benne, kisebb javítások és frissítések.

De azért mégis van benne érdekes dolog, hiszen javítva lett egy nagy memória szivárgás, amely az -mm1-ben mutatkozott be először, és benne van már az a readahead-seralisation patch, amely a nemrég felfedezett random file I/O visszafejlődést hivatott javítani a 2.6-ban.Az anyag letölthető:

ftp://ftp.kernel.org/../akpm/patches/2.6/2.6.6-rc3/2.6.6-rc3-mm2/

A változások listája Andrew levelében itt.

A kernel patcheléshez segítséget itt találsz.

Random file I/O visszafejlődés a 2.6-ban

Címkék

Alexey Kopytov LKML-re postázott benchmark-jában megállapította, hogy a 2.6-os Linux kernelben jelentős visszafejlődés tapasztalható a random file I/O-ban. Mivel a random file hozzáférés elsősorban az apró file műveleteket jelenti (random I/O = kis fileok ``összecsipegetése'' a merevlemez terület elszórt részeiről, tipikusan adatbázis műveletek, szekvenciális I/O = egybefüggő, nagy fileok kezelése , tipikusan streaming video, audio, stb.), ezért elsősorban az adatbázisokat futtató felhasználók érzik meg ennek negatív hatását.

Alexey ezért olyan méréseket végzett, amely nagy terhelésű adatbázis-kezelést szimulálnak. A tesztek során megvizsgálta az összes szóba jöhető I/O ütemezőt, beleértve az anticipatory, deadline és a CFQ schedulert, és arra az eredményre jutott, hogy az összes esetben jobban teljesít a 2.4-es kernel, mint a 2.6-os (több, mint kétszer volt gyorsabb a 2.4).A hiba feltárásban Andrew Morton a 2.6-os kernel karbantartója és Nick Piggin az anticipatory I/O ütemező szerzője arra a következtetésre jutottak, hogy a regressziót valószínűleg a előreolvasási (readahead) cache nem megfelelő működése okozza (a random I/O-nál nagy szerepe van a megfelelő cache-elésnek, hiszen minél több adatot gyorsítótárazunk, annál kevesebb merevlemez műveletet kell végezni. Az apró fileok összeszedegetése rendkívűl sok merevlemez fej pozícionálással jár, amely nagyon időigényes feladat).

Andrew szerint a readahead logika egyre komplexebb, és állandóan csak foltozva van. Azt javasolta, hogy vessék el a jelenlegi megoldást, és gondolják újra azt. Végül a probléma okát Ram Pai találta meg. A probléma az volt, hogy több thread is ugyanazon fileleíróhoz (file descriptor) akart egy időben hozzáférni. Andrew egyetértett vele, és el is készített egy gyors patchet.

A teszt eredmények azt mutatják, hogy valóban ez volt a probléma. A patchelés után Andrew-nek ext2 filerendszeren AS ütemezővel jobb eredmények születtek a 2.6-os kernellel, mint a 2.4-gyel. Adatbázis embereknek mindenképpen érdemes majd kernelt frissíteni!

A thread itt kezdődik.

Marcelo Tosatti: Linux 2.4.27-pre2

Címkék

Marcelo kiadta a 2.4.27-es kernel második -pre verzióját.

Benne - többek közt - m68k/SPARC, XFS, IDE, hálózati frissítéseket, nagy PCI hotplug frissítést, gcc3, riva javítást találunk. Az anyag letölthető (majd) innen. A változások listája Marcelo levelében itt.

A kernel patcheléshez segítséget itt találsz.

Linus Torvalds: Linux 2.6.6-rc3

Címkék

Linus hosszabb szünet után kiadta a 2.6.6-os kernel harmadik kiadásra jelölt verzióját. Ezzel megkezdődött a stabilitást célzó fázis a 2.6.6-hoz, amelynek végleges verziója a hét végére várható.

Az -rc3-ban s390, cifs, ntfs, ppc, ppc64, cpufreq, DVB és USB frissítések taláhatók.Az anyag letölthető patch-2.6.6-rc3.bz2

A változások részletes listája Linus levelében itt.

A kernel patcheléshez segítséget itt találsz.

Andrew Morton: Linux 2.6.6-rc2-mm2

Címkék

Andrew kiadta a második -mm patchet a 2.6.6-rc2-es kernelhez. Benne:

- nagy mennyiségű ReiserFS frissítés (új funkciók). A legnagyobb változás talán az új blokk foglalási (block allocation) algoritmus

- belekerült az ia64 CPU hotplug támogatás patch

- ext3 block allocator munkák

- framebuffer driver frissítések

- szokásos fixek A patch letölthető:

ftp://ftp.kernel.org/../akpm/patches/2.6/2.6.6-rc2/2.6.6-rc2-mm2/

A változások listája Andrew levelében itt.

A kernel patcheléshez segítséget itt találsz.

AHCI SATA driver

Címkék

Jeff Garzik új driverének köszönhetően a Linux kernel támogatja a AHCI (Advanced Host Controller Interface) SATA (Serial ATA) vezérlőket.

Ahogy Jeff levelében írja, ismert, hogy az ATA host csatolófelületekkel mindig az a gond, hogy lassúak. De most változik valami. Szerinte a jelenlegi SATA vezérlők egy nagyot léptek előre, hiszen köszönhetően annak, hogy a DMA queue-k ~32 szintű mélysége már természetesnek vehető, a sebesség megnövekedett, és emellett az összes új SATA vezérlő hot-plug barát.

Sajnos a storage iparban a legtöbb gyártó NDA-kal védi az ilyen host adapterek belső felépítését. Viszont szerencsére van egy, amelyhez nem kell NDA-t aláírni. Ez az Intel ICH6 vezérlő.Az Intel ICH6 a teljesen teljesen nyílt Advanced Host Controller Interface specifikáción alapul, amely amellett hogy nyít még az alábbi modern funkciókkal is bír: 64 bites DMA támogatás mindenhol (nincs

bank switching), queueing támogatás, triviális PIO és ATAPI támogatás, hozzáférés az alacsony-szintű SATA FIS-hez, stb.

A specifikációk, a driver forrása megtalálható Jeff levelében itt.

Ketchup 0.7 - Automatikus kernel patchelés

Címkék

Matt Mackall a -tiny kernel patch karbantartója bejelentette a ketchup névre hallgató automatikus kernel patchelő szkriptjét. A Python-ban írt szkript arra használható, hogy egy meglevő kernel verzióról a másikra frissítsünk. A tool cache-eli a kernel patcheket, így csak azokat a foltokat tölti le, amelyek feltétlenül szükségesek a kernel update-hez. Emellett biztonsági ellenőrzést is végez a frissítés közben, a kernelek gpg aláírást vizsgálja.A szkript támogatja a 2.4-es és a 2.6-os fő kernelt sorozatot, és emellett megbirkózik az -mm, -tiny és -mjb kernelfákkal is. A szkriptnek megadhatjuk, hogy mire frissítsen, vagy egyszerűen kérhetjük, hogy a legfrissebb stabil kernelre upgrade-ljen.

Például:

ketchup 2.6 - a legfrissebb hivatalos 2.6 kernelforrást kapjuk

ketchup 2.6-rc - a legfrissebb 2.6-rc-re frissít

ketchup 2.6-pre a legfrissebb 2.6-pre-re frissít

ahhoz, hogy a tényleg a legfrissebbek legyünk, használhatjuk a következőt:

ketchup 2.6-tip - a legfrissebb -bk snapshot-ra frissít

Működés közben:

$ ketchup 2.6-mm

2.6.3-rc1-mm1 -> 2.6.5-mm4

Applying 2.6.3-rc1-mm1.bz2 -R

Applying patch-2.6.3-rc1.bz2 -R

Applying patch-2.6.3.bz2

Applying patch-2.6.4.bz2

Applying patch-2.6.5.bz2

Downloading 2.6.5-mm4.bz2

Downloading 2.6.5-mm4.bz2.sign

Verifying signature...

gpg: Signature made Sat Apr 10 21:55:36 2004 CDT using DSA key ID 517D0F0E

gpg: Good signature from "Linux Kernel Archives Verification Key

"

gpg: aka "Linux Kernel Archives Verification Key

"

owner.

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the

Primary key fingerprint: C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E

Applying 2.6.5-mm4.bz2

Az anyag letölthető innen.

Matt levele itt.