Kernel

Molnár Ingo: Voluntary Kernel Preemption Patch

Címkék

A tuning mester Molnár Ingo küldött egy levelet az LKML-re, amelyben egy új patch-ről számol be.

Mint írja, többen is szóvá tették a listán, hogy a 2.6-os Linux kernel nem használható komolyabb audio munkákra, mert borzasztóan nagy az ütemezési latency-je (például a JackIt fejlesztők is reklamáltak emiatt).

Ingo megnézte a 2.6.7-es kernel latency-jét, és azt tapasztalta, hogy valóban rossz. A latency akár 50 msec (!) is lehet, amely simán reprodukálható normális terhelés mellett egy olyan gyors 2GHz+ x86 rendszeren is, amely teljesen preemptive kernelt futtat.

Ezért Ingo és Arjan van de Ven végigmentek a kernel különböző funkcióin és megvizsgálták azok latency-jét. A munka eredményeképpen megszületett egy patch, amely teljesen 0-ról íródott, teljesítményben egyenlő a korábbi 2.4-es kernelhez készült lowlatency patchek teljesítményével, de más dizájnnal rendelkezik, mások a hatásai és más megközelítésből ered.A lowlatency patch-csel ellentétben ez a patch nem ad új ütemezési pontokat a kernel forráshoz, hanem a már meglevő gazdag választékból használja fel azokat, amelyek nem voltak eddig használatban. A patch célja, hogy eltávolítson minden olyan latency forrást, amely nagyobb, mint ~1 msec latency-t generálna a rendszerben. A tesztek során a patch felhasználása mellett a fejlesztők próbáltak olyan terhelést generálni a teszt rendszeren, amely audio ``ugráshoz'' vezetett volna, de nem tudtak olyan workload-ot generálni, hogy a latency ~1 msec fölé elmelkedett volna.

A patch magasabb szinten konfigurálható, mint a 2.4-es lowlatency patch. Van egy .config opció (CONFIG_VOLUNTARY_PREEMPT), amellyel engedélyezni lehet a voluntary preemption-t, emelett van /proc/sys kapcsoló és boot-idejű paraméterezési lehetőség is.

# A voluntary preemption be/ki kapcsolása (ha a CONFIG_VOLUNTARY_PREEMPT kernelben van)

echo 1 > /proc/sys/kernel/voluntary_preemption

echo 0 > /proc/sys/kernel/voluntary_preemption

# preemptible kernel funkció be/ki kapcsolása (ha a CONFIG_PREEMPT a kernelben van)

echo 1 > /proc/sys/kernel/kernel_preemption

echo 0 > /proc/sys/kernel/kernel_preemption

Boot-idejű opciók:

'voluntary-preemption=0/1' és 'kernel-preemption=0/1'

A patch a 2.6.7-bk20 kernelhez készült, és több olyan hibát is fixál, amelyet a készítők a fejlesztés közben találtak. A patch működik a fejlesztőknek (tm), de óvatosan használja mindenki! A szerzők minden visszajelzést szívesen fogadnak.

Bővebben Ingo levelében és a thread-ben itt.



A patch letölthető:

http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.7-bk20-H3



Aki a vanilla 2.6.7 kernelen szeretné kipróbálni a patchet, az töltse le ezt:

http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.7-vanilla-H3

A Linux kernel stressz-tesztelése

Címkék

Vajon hogyan győződhetünk meg arról, hogy az általunk éles rendszeren használni kívánt Linux kernel elegendően stabil vagy megfelelő teljesítményt nyújt? Szükség van erre egyáltalán? A válasz az, hogy igen.

Küldetés kritikus környezetben nem megengedhető az, hogy a rendszer gazdája az éles rendszeren próbálgassa ki azt, hogy vajon megfelelő lesz-e számára a kiválasztott kernel. Sokkal jobb, ha telepítés előtt ellenőrizni tudja, hogy az adott kernel verzió mennyire terhelhető, és hogy mennyire stabil. De vajon hogyan lehet ezt tesztelni? Lehet egyáltalán valahogy szimulálni mondjuk az éles környezetünkben fellépő hatásokat?Robert Williamson (robbiew@us.ibm.com) az IBM Linux Technology Center alkalmazottja most bevezeti az olvasót abba, hogy a Linux Test Project csapat tagja milyen stressz-teszteket futtat az általuk vizsgált Linux gépeken. Bemutatja, hogy milyen szkripteket és eszközöket használnak, és hogy hogyan dokumentálják az eredményeket.

Ha valaki hasonló tesztelésre adja a fejét, érdemes elolvasni a cikket itt.

``A halál csomagja'' sebezhetőség a 2.6-os Linux kernelben

Címkék

Távolról kihasználható sebezhetőség található az összes 2.6-os Linux kernelben, mert helytelen változó típust tartalmaznak. A ``packet of death'' névre hallgató hiba az iptables-t érinti.A hiba csak akkor használható ki, ha az iptables rules matching TCP opcióinak valamelyikét használjuk (--tcp-option). A sikeres támadás DoS-hoz vezethet. A megfelelően formázott TCP csomagra az áldozat gép végtelen ciklusba esik, és felemészti az összes CPU erőforrását. Ettől a gép olyan állapotba kerül, hogy képtelen lesz válaszadásra. A hiba biztosan érinti az i386-os architektúrát, de valószínűsíthető, hogy a többi architektúra is érintett.

A hibát Adam Osuchowski és Tomasz Dubinski fedezte fel és javította ki. A hiba egyszerűen javítható azzal, hogy a változó típusát lecseréljük a helyes típusra, majd újrafordítjuk a kernelt.

Bővebben itt.

Marcelo Tosatti: Linux 2.4.27-rc1

Címkék

Marcelo kiadta a 2.4.27-es Linux kernel első kiadásra jelölt verzióját. Benne ACPI javítások, HPFS frissítések, USB javítások, stb. találhatók.

Vezeték-nélküli hozzáférési pont stack a Linux kernelben (hamarosan)

Címkék

A Linux kernel régóta támogatja a vezeték-nélküli hálózatokat. Ez a cikk is egy ilyen homebrew wireless hálózaton íródik. Sajnos van olyan dolog jelenleg a wireless lan témakörben, amit a Linux kernel nem támogat. Egy vanilla kernelt futtató linuxos gép nem tud vezeték-nélküli hozzáférési pont (wireless access point WAP - access point - AP) lenni.

A standard Linux kernel számos olyan funkciót tartalmaz, amely lehetővé tenné, hogy access point-két is működjön (hálózat bridge-lés, DHCP szerver, stb.), de vannak olyan funkciók, amelyek még megvalósításra várnak. Ilyenek például a WEP (Wired Equivalent Privacy - kábelezéssel egyenértékű biztonság, nagyon gyenge titkosítás, pillanatok alatt feltörhető, ezért sok helyen inkább kiváltják IPsec-kel), az access control, vagy a Wireless Distribution System támogatás, amelyek még megvalósításra várnak.A mainline kernel nem támogatja ezeket a funkciókat, de ez nem jelenti azt, hogy ezek nem elérhetők a kernelen kívül. Számos gyártó készít Linux kernelen alapuló vezeték-nélküli hozzáférési pontot, és több projekt is létezik, amely ilyen szoftvereket készít. Azonban ahhoz, hogy ilyen AP-t készítsünk több függetlenül fejlesztett projekt ``termékét'' kell összeszednünk, ami sokszor nem kis feladat. Össze kell szednünk azokat a cuccokat, amelyek a mi kártyánkat támogatják, patchelni kell a kernelt, össze kell reszelni a dolgokat, hogy működjön, stb. Mennyivel jobb volna, ha a mainline kernel tartalmazna mindent, ami egy AP elkészítéséhez kell, nem?

De. Ezért Jeff Garzik úgy döntött, hogy egy generic wireless access point stack-et készít a mainline kernelben. A munkához a már létező HostAP projektet választotta, mint kiindulási alapot. A HostAP egy széles körben használt Prism-alapú kártyákat támogató szoftver stack.

Ha a Wlan AP stack elkészül akkor egy megfelelő alapot fog nyújtani arra, hogy bárki elkészíthesse otthon a saját vezeték-nélküli hozzáférési pontját. Jeff reméli, hogy az anyag része lehet a 2.6-os kernelnek.

A bejelentés itt.

Hagyjátok abba a Linux kernellel kapcsolatos elmebajt!

Címkék

``Stop the Linux kernel madness'' tárggyal írt levelet a 4Front Technologies vezetője az LKML-re. A levélben arról ír, hogy nagy problémának érzi, hogy a SuSE szisztematikusan forkolja a Linux kernel forrását, rendszeresen szállítja a disztribúcióiban a változtatásokat (a vanilla kernelhez képest), és ennek ellenére azt állítja, hogy a módosított kernele 2.6.5-ös (például).

A vezető szerint vagy az eredeti kernelt (kernel.org-os kernelt) kellene a SuSE-nak szállítania, vagy be kellene fejeznie a kernelét 2.6.5-ösnek hívni.A fejlesztő azt állítja, hogy a SuSE megváltoztatja a kernel headereket, amely azt eredményezi, hogy csak a SuSE által készített szoftverek működnek a kernellel (magyarul nem lehet a kernelhez 3party drivert készíteni, amert az nem fordul le a módosított headerek miatt. a gyártó cég a fejlesztéskor a kernel.org-os forrást veszi alapul, amely jelentősen eltér a SuSE forrásától).

A fejlesztő cég vezetője elmondja, hogy ez szerintük nem az ő problémájuk, mert az általuk fejlesztett szoftver tökéletesen működik Fedora/Debian/Gentoo/Mandrake/Redhat/stb. disztribúciók alatt. Szerinte a SuSE hazudik, amikor azt állítja, hogy a kernele 2.6.5-ös, hiszen tele van változtatásokkal.

A vezető sürgős segítséget kér ahhoz, hogy a disztribúciók fejezzék be a Linux kernel forkolását, mert a kis fejlesztők, mint például ők így nem tudják a szoftvereiket frissíteni.

Persze a levélből óriási flame lett. Sokan egyetértenek a fejlesztő cég vezetőjével, sokan nem. A thread itt kezdődik.

Marcelo Tosatti: Linux 2.4.27-pre6

Címkék

Marcelo kiadta a 2.4.27-es Linux kernel hatodik -pre verzióját. Benne jelentős USB, JFS, netfilter/sctp javítások, CDROM driver frissítés, tg3 frissítés, SPARC/Alpha javítások kaptak helyet.

A legfontosabb javítás benne a clear_cpu() makro bug javítása. Az anyag letölthető patch-2.4.27-pre6.bz2

Változások listája Marcelo levelében itt.

Új Linux kernelt ``fagyasztó'' hibát fedeztek fel

Címkék

A Linuxreview.org-on jelent meg egy cikk, amely arról számol be, hogy egy olyan hibát találtak a Linux kernelben, amelyet kihasználva a Linux kernel annyira ``lefagy'', hogy csak az Magic Sys Rq-ra reagál. A hiba érinti a 2.4.2x és a 2.6.x kerneleket is. A hibát, mint 15905-es számú gcc bugot jelentette egy felhasználó a gcc BugZilla-ban. A hibát egy egyszerű C programmal lehet kihasználni.

A bug akkor jön elő ha az exploitot GCC 3.3-mal vagy 3.3.2-vel fordítják, és Linux 2.4.2x vagy 2.6.x kerneleken futtatják.

Bővebben a hibáról itt.