Portál AbcLinuxu, 5. května 2025 17:25

Jaderné noviny - 23. 5. 2007

14. 6. 2007 | Robert Krátký
Články - Jaderné noviny - 23. 5. 2007  

Aktuální verze jádra: 2.6.22-rc2. Přednačítání na vyžádání [On-demand readahead]. Sledování regresí. Grafický subsystém v jádře. Soubory jako adresáře.

Obsah

Aktuální verze jádra: 2.6.22-rc2

link

Aktuální předverze řady 2.6 je (k 23. 5. 2007) 2.6.22-rc2, vydaná 18. května. Všelijaké opravy všude možně - připojený krátký changelog je docela dobře čitelný. Nejvýznamnější jsou asi další opravy SLUB a optimalizace epoll. Dlouhý changelog obsahuje všechny podrobnosti.

Aktuální verze -mm stromu je 2.6.22-rc2-mm1. Mezi nedávné změny patří přidání CFS plánovače, velká aktualizace Xen, aktualizace rozhraní signalfd(), která umožňuje přijetí více signálů v rámci jediného systémového volání, nový patch pro vyžádané přednačítání [on-demand readahead] (vizte níže) a systémové volání fallocate().

Přednačítání na vyžádání [On-demand readahead]

link

"Přednačítání" znamená spekulativní načítání části souboru do paměti v očekávání, že proces, který s daným souborem pracuje, ta data bude brzy chtít. Když přednačítání funguje dobře, bude mít proces, který je náročný na data, k dispozici potřebné informace, kdykoliv si o ně řekne - takže pak není nutné čekat na diskové I/O. Linuxové jádro už přednačítání provádí dlouho, ale to neznamená, že by to nešlo vylepšit. Fengguang Wu proto už pár let pracuje na sadě patchů pro podporu "přizpůsobivého přednačítání" [adaptive readahead].

Patche zůstávají v -mm z jednoduchého důvodu: jsou tolik komplexní, že není moc lidí, kteří by je dokázali pořádně zkontrolovat. Nový patch s přednačítáním na vyžádání je reakcí na požadavek Andrew Mortona na jednodušší patch, který by mohl proces začleňování rozhýbat. Nový kód je skutečně jednodušší, protože se zbavil většiny logiky, kterou obsahuje kompletní mechanismus přizpůsobivého přednačítání.

Patch s "on-demand" do velké míry reimplementuje to, co už teď dělá linuxové přednačítání, ale jednodušším, pružnějším způsobem. Stejně jako stávající kód, i on-demand patch udržuje "přednačítací okno", které sestává z části souboru začínající v místě, odkud aplikace naposledy četla. Stránky uvnitř přednačítacího okna by už měly být v keši stránek - a nebo aspoň předmětem I/O, aby se tam co nejdříve dostaly. Okno se posunuje kupředu souběžně s tím, jak aplikace data načítá.

Stávající kód vlastně implementuje okna dvě: "aktuální okno" (sada stránek v keši, mezi nimiž je i aktuální pozice aplikace) a "okno vpředu" [ahead window], což jsou nejčerstvější stránky, které právě jádro načetlo. Jakmile se pozice aplikace přesune z aktuálního okna do okna vpředu, je započata nová I/O operace, která vytvoří nové okno vpředu. Tímto způsobem se jádro snaží neustále držet dostatečný náskok před aplikací, aby byla data k dispozici, když jsou potřeba.

Patch s on-demand má okno jen jedno. Místo udržování samostatného "okna vpředu" říká nový kód o stránce (pomocí příznaku ve struktuře page), že je na "předvídacím indexu" [lookahead index]. Když se aplikace k označené stránce dostane, dojde k rozšíření přednačítacího okna a začne nová I/O operace. Proti používání příznaku se objevil určitý odpor, protože je těchto bitů neustále málo. Andrew Morton navrhl využít k tomu účelu heuristiku. Takový přístup by možná způsobil občasné špatné rozhodnutí, ale nic hrozného by se nestalo a na správný chod systému by to nemělo vliv.

Ačkoliv to vypadá, že patch on-demand toho moc nedělá, spočívá jeho výhoda v odstranění spousty komplikovaných záležitostí z aktuálního přednačítacího kódu. Je např. schopen se rozhodovat bez nutnosti se snažit o sledování událostí typu "pokus o přednačtení stránek, které jsou už v keši". Také kontroly sekvenčního přístupu nejsou tolik striktní, takže přednačítání zůstává aktivní i v situacích, kdy by jej stávající kód vypnul. Podle výsledků testů, které doprovázely patch, je dosaženo zrychlení aplikací o 0,1 až 8 % - i když v některých případech bylo naměřeno i zpomalení. Zajímavé je, že některé z nejlepších výsledků se projevily při běhu databáze MySQL, což není aplikace, u které by člověk očekával hodně sekvenční aktivity.

Tento patch je určitě dost jednoduchý na to, aby mohl být zkontrolován; pokud se neobjeví vážné výhrady, mohl by být připraven do 2.6.23. Pak by třeba Fengguang mohl začít pracovat na přidávání komplexnější logiky, která tvoří mechanismus přizpůsobivého přednačítání.


Následující obsah je © KernelTrap

Sledování regresí

link

21. kvě, originál

Sledování regresí v nových verzích jádra se ujal Michal Piotrowski, který spravuje na Kernel Newbies wiki stránku "known regressions" [známé regrese]. Seznam je rozdělen na sekce a po každém vydání (release candidate) odesílán do LKML.

Grafický subsystém v jádře

link

21. kvě, originál

Jesse Barnes poslal shrnutí probíhajího úsilí o vylepšení jaderné podpory grafiky: Ve spolupráci s vývojáři framebufferu pracujeme na vylepšení grafického subsystému, abychom do světa linuxové grafiky vnesli trochu pořádek a zbavili se současné situace, při které o kontrolu grafických zařízení bojuje několik jaderných a uživatelských ovladačů. A vysvětlil: Je hned několik důvodů, proč přidat nastavování režimů a podporu více monitorů [multihead] přímo do jádra: suspend/resume [uspávání/probouzení], debugování (např. panic), využití mimo X a spolehlivější přepínání VT. Jesse přidal i podrobnosti o každém z těchto důvodů a nastínil aktuální stav kódu:

Současný kód je v mnoha ohledech nekompletní: je třeba (znovu) přidat zamykání u částí, které manipulují se seznamy, potřebujeme lepší logiku pro počáteční konfiguraci, podpora je zatím dostupná jen pro ovladač Intelu (a i tak chybí funkce pro suspend/resume a akcelerovaný FB), musíme kontrolovat, jestli režim odpovídá možnostem monitoru (které získáme buď z EDID nebo od uživatele), kód pro nastavování DRM režimu stále nepoužívá generování módu založené na CVT a GTF a ještě mnohem více věcí. Doufám, že díky vystavení kódu zjistíme, jaké mají lidé představy nebo požadavky na linuxovou grafiku, takže si budeme moci stanovit priority.

Soubory jako adresáře

link

23. kvě, originál

Miklos Szeredi poslal patch, který umožňuje přistupovat k souborům jako k adresářům. Jako příklad nabídl třeba přístup k obsahu zkomprimovaného tarballu jako k obyčejnému adresáři. Poznamenal, že to nemusí být jediný způsob využití patche: Někdo by mohl navrhnout využití rozhraní třeba pro přístup ke streamům, větvím zdrojů nebo rozšířeným atributům. Patch se však zabývá pouze neadresáři, takže adresáře by z takového rozhraní byly vyloučeny. Jinak však kód nijak neomezuje koncept 'soubor jako adresář' - jen přidává infrastrukturu, která by ty šílenosti podporovala. Al Virovi se patch zalíbil a řekl: Večer se na to podívám; zní to zajímavě - za předpokladu, že nenarazíme na nějaké vážné problémy se zamykáním a revalidační logikou. Miklos a Al pak probírali implementační detaily.

Miklos dále vysvětlil, že to funguje pomocí připojování [mount] se speciálními vlastnostmi: Je-li k neadresářovému objektu přistupováno s koncovým lomítkem, může se souborový systém rozhodnout umožnit k souboru přístup jako k adresáři. V takovém případě je 'něco' (což dodá souborový systém) připojeno nad neadresářový objekt. Pokud za názvem souboru není lomítko, připojení se neprovede. Připojení zůstane, pouze pokud na něj odkazuje nějaký externí objekt - např. pwd nebo otevřený soubor. Když odkaz zmizí, dojde k automatickému odpojení. Na rozdíl od 'skutečných' připojení to nezablokuje unlink(2) nebo rename(2) na původním objektu.

Související články

Jaderné noviny - 16. 5. 2007
Jaderné noviny - 9. 5. 2007
Jaderné noviny - 2. 5. 2007

Odkazy a zdroje

Kernel coverage at LWN.net: May 23, 2007
kerneltrap.org

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

Jardík avatar 14.6.2007 00:10 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Odpovědět | Sbalit | Link | Blokovat | Admin
podpora je zatím dostupná je pro ovladač Intelu
sed 's/dostupná je/dostupná jen/g'
Věřím v jednoho Boha.
14.6.2007 14:19 Jazz
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
podpora je zatím dostupná je pro ovladač Intelu
sed 's/dostupná je/dostupná jen/g'
pro línější:

sed 's/dostupná je/&n/g'
15.6.2007 08:03 .
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
pro línější: poweroff
Marek Bernát avatar 14.6.2007 01:30 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Odpovědět | Sbalit | Link | Blokovat | Admin
Proti používání příznaku se objevil určitý dpor, …

odpor
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
14.6.2007 12:47 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Odpovědět | Sbalit | Link | Blokovat | Admin
Zajímavé je, že některé z nejlepších výsledků se projevily při běhu databáze MySQL, což není aplikace, u které by člověk očekával hodně sekvenční aktivity.

Sekvencny scan tabulky mi nepride az tak nezvycajny a ze bude tabulka ulozena sekvencne v db subore, je celkom pravdepodobne: jednak sa databazy obycajne snazia ukladat jeden objekt na jedno miesto, pokial je to mozne (rataju s readahead v os, co je presne diskutovany pripad), resp. tabulku tak ulozia aj bez explicitnej snahy, ak je vytvorena davkovo a pod.
14.6.2007 22:19 test
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Slovo "aplikace" pochazi z widli, proc nepouzit radeji slovo program, ktere je tradici pro UNIX ?
14.6.2007 22:39 Jirka | skóre: 36
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Ale no tak. :-) Slovo "aplikace" snad Microsoft ještě patentováno nemá.
14.6.2007 22:44 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Nehledě na to, že v tomto případě je "aplikace" míněno jako "nasazení" nebo "uplatnění".
15.6.2007 07:53 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Myslím, že mezi slovy aplikace a program (v IT významu) je drobný rozdíl. Program podle mne znamená spíš jeden konkrétní spustitelný soubor, aplikace je pak spustitelný soubor + knihovny + dokumentace + další soubory (obrázky, texty apod.) Ale většinou se to používá jako synonyma.
15.6.2007 15:49 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
A pridame-li k tomu podporu a marketing, tak uz je to produkt? ;-)
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
15.6.2007 15:54 Jirka | skóre: 36
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Ne, pak se začne používat slůvko "solution". :-)
15.6.2007 18:19 Olsen
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Jo, řešení, to už je tak otravný! Vždyť to ani nedává smysl... Obzvlášť kompletní řešení mi pijou krev, každý střevo se s tím vohání, aby bylo v biznise IN, kompletní řešení pro vaše účetnictví, kompletní řešení pro vaši firmu, kompletní řešení pro odvod vašich fekálií... Já bych nejradši kompletní řešení pro 220V terapii vylízanců, co říkají "(kompletní) řešení".
16.6.2007 12:53 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Jo no jo ... na komple[t|x]ni reseni jsem si nevzpomnel ... to je ale produkt za ukrutny prachy, ne? ;-)
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
16.6.2007 18:35 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Jo, řešení, to už je tak otravný! Vždyť to ani nedává smysl... Obzvlášť kompletní řešení mi pijou krev, každý střevo se s tím vohání, aby bylo v biznise IN, kompletní řešení pro vaše účetnictví, kompletní řešení pro vaši firmu, kompletní řešení pro odvod vašich fekálií... Já bych nejradši kompletní řešení pro 220V terapii vylízanců, co říkají "(kompletní) řešení".
Náhodou, nazývat to komplexní řešení je často správné. Každé komplexní řešení přeci zahrnuje netriviální imaginární část :-)
Marek Bernát avatar 16.6.2007 19:31 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Až na rýdzo reálne riešenia :-)
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
15.6.2007 20:58 pic | skóre: 30 | blog: Perdido_Street_Station
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Odpovědět | Sbalit | Link | Blokovat | Admin
nemáte někdy pocit, že některé diskuse připomínají spíš dohady těchto pánů?
Marek Bernát avatar 15.6.2007 22:55 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 5. 2007
Ook.
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

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