Portál AbcLinuxu, 10. května 2025 16:54

Jaderné noviny – 22. 3. 2012: Co bude v Linuxu 3.4

2. 4. 2012 | Luboš Doležel
Články - Jaderné noviny – 22. 3. 2012: Co bude v Linuxu 3.4  

Aktuální verze jádra: 3.3. Citáty týdne: Christoph Lameter, H. Peter Anvin, Adam Jackson. Gregg: výkon Linuxu v grafech. Linsched pro Linux 3.3. Začleňovací okno verze 3.4, část první.

Obsah

Aktuální verze jádra: 3.3

link

Linux 3.3 vyšel 18. března, a proto ještě nevyšla žádná vývojová verze. Některé z hlavních novinek v této verzi jsou: infrastruktura bajtových omezení front [byte queue limits], Open vSwitch, návrat spousty androidího kódu do stromu staging, podpora architektury C6X, podpora rozšíření pro velké fyzické adresy na ARM a ještě více. Více informací lze nalézt na příslušné stránce na KernelNewbies.

Začleňovací okno pro verzi 3.4 je otevřené; níže najdete přehled toho, co bylo doposud začleněno.

Stabilní aktualizace: 19. března vyšly verze 3.0.25 a 3.2.12 s obvyklou kupou důležitých oprav. Pro uživatele starších jader jsou tu verze 2.6.27.62 a 2.6.32.59 v rámci dlouhodobé údržby, obě mají docela málo změn a vyšly 27. března.

V současnosti se revidují stabilní aktualizace 3.0.26 a 3.2.13, jejich vydání lze očekávat 23. března nebo později.

Citáty týdne: Christoph Lameter, H. Peter Anvin, Adam Jackson

link

Ověřování patchů probíhá v umělé bublině tvořené programy, které používají nebo znají vývojáři jádra. Než bude kód otestován ve skutečných situacích, tak mohou uběhnout roky.

-- Christoph Lameter

V jazyce C za žádných okolností, pod pohrůžkou smrti, nikdy nedeklaruješ nebo nedefinuješ funkci s prázdnými závorkami, neboť ač v jazyce pod jménem C++ známém míní se tím (void), v C budiž to ekvivalentní (...), což jest bez smyslu, jelikož tak není známo argumentu, skrze něhož typ variadických argumentů lze určiti, což svádí kompilátory na cestu zlou, jež nečistý kód kvůli ošetření variadických argumentů může způsobiti.

H. Peter Anvin

Jediná věc, která vede k napsání ovladače, je napsat ten zatracený ovladač.

Adam Jackson

Gregg: výkon Linuxu v grafech

link

Brendan Gregg předvedl „ohnivé grafy“ [flame graphs] fungující jako nástroj pro odhalení výkonnostních problémů v jádře. Strom s výkonnostním přehledem (a prohlížeč v ncurses) fungují jako výborný nástroj, pokud si chcete zobrazit informace v textové podobě. Výstup se často nevejde na jedinou obrazovku (i když byste mohli říct, že se ani vejít nemusí, protože většina vzorků je identifikována hned na první stránce). Pro odhalování nejvíce vytěžovaných cest v kódu je navíc třeba číst procenta. S ohnivými grafy máte všechna data na obrazovce najednou a nejvytěžovanější cesty jsou jasné na první pohled jako nejširší funkce. Kód projektu je hostován na Githubu.

Linsched pro Linux 3.3

link

Na Kernel Summitu 2011 popsal vývojář Googlu Paul Turner framework pro testování plánovače, který měl dle jeho slov být brzy vydán. Samozřejmě to nakonec trvalo déle, než se původně čekalo, ale 14. března Paul vydal Linsched k veřejnému užití. Vzhledem k zájmu, jaký nástroj vyvolal, se dá čekat, že se do hlavní řady dostane relativně ve spěchu.

Linsched je framework, který umožňuje spouštět jaderný plánovač po různými simulovanými zátěžemi a zkoumat kvalitu rozhodnutí, jaké udělá. Zkoumá celkové zatížení CPU, počty migrací a další věci. Dokáže napodobovat spoustu všemožných hardwarových topologií s různou charakteristikou.

Původní podoba Linschedu byla dosti násilná; vkládala více než 5000 řádek kódu do jádra, které se krčily za #ifdef LINSCHED. Po troše úsilí se toto číslo podařilo trochu snížit – na 20 řádek. Zbytek byl chytře ukryt za speciální architekturu „linsched“, která poskytuje vše potřebné pro běh plánovače v uživatelském prostoru. Kód pro samotnou simulaci a provádění měření se krčí v adresáři tools.

Měnění plánovače je nechvalně náročný úkol; je až příliš snadné zanést do kódu regresi, na kterou se nepřijde, dokud na ni někdo nenarazí v produkčním nasazení. Díky dostatečnému počtu simulovaných topologií a zátěží by nástroj jako Linsched měl být schopen riziko podobných chyb snížit. A to by mělo vést k lepším vydáním jádra.

Začleňovací okno verze 3.4, část první

link

Vydání verze 3.3 dne 18. března nevyhnutelně vedlo k otevření začleňovacího okna pro vývojový cyklus verze 3.4. V době psaní tohoto textu bylo do hlavní řady přetaženo nějakých 3500 neslučovacích změn; jinými slovy tento cyklus právě začal.

Některé ze změn viditelných pro uživatele zahrnují:

Také stojí za pozornost funkčnost transcendentní paměti „ramster“, která byla přidána do stromu staging, aby byla zanedlouho zase odstraněna; různé další změny ji totiž rozbily. Ramster je nástroj pro něco jako sdílení paměti mezi stroji; systém s volnými stránkami může hostovat data pro jiný systém, který jich má nedostatek. Pro více informací si přečtěte tento článek a dále si pak můžete přečíst vizi Ramsteru. Přidání této funkčnosti vyžaduje vyčlenění řady funkcí ze souborového systému OCFS2 pro jejich obecné použití. Dá se očekávat, že se patch vrátí do verze 3.5.

Změny viditelné vývojářům jádra zahrnují:

Začleňovací okno bude pokračovat asi až do 2. dubna. Na přetažení ještě čeká spousta subsystémů, takže můžeme očekávat velké množství dalších změn.

Odkazy a zdroje

Kernel coverage at LWN.net: March 22, 2012

Další články z této rubriky

Jaderné noviny – přehled za březen 2025
Jaderné noviny – přehled za únor 2025
Jaderné noviny – přehled za leden 2025
Jaderné noviny – přehled za prosinec 2024
Jaderné noviny – přehled za listopad 2024

Diskuse k tomuto článku

clayman avatar 2.4.2012 12:24 clayman | skóre: 13 | Praha 6
Rozbalit Rozbalit vše Re: Jaderné noviny – 22. 3. 2012: Co bude v Linuxu 3.4
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm, tu věc stran C z komentáře H.P. Anvina jsem nevěděl... Zajímavé.
2.4.2012 12:35 Petr Ježek | skóre: 10
Rozbalit Rozbalit vše Re: Jaderné noviny – 22. 3. 2012: Co bude v Linuxu 3.4
A celkem podstatné, pokud si uvědomíme, kolik procet kódu musí být přečteno, jen aby to k ničemu potřebnému nevedlo.
Archlinux for your comps, faster running guaranted!

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.