Portál AbcLinuxu, 2. května 2024 23:08

Jaderné noviny – 6. 12. 2012: O novém ovladači PowerClamp

31. 12. 2012 | Luboš Doležel
Články - Jaderné noviny – 6. 12. 2012: O novém ovladači PowerClamp  

Aktuální verze jádra: 3.7-rc8. Citáty týdne: Hugh Dickins, Rusty Russell, Russell King. Opět na téma FALLOC_FL_NO_HIDE_STALE. Ovladač PowerClamp.

Obsah

Aktuální verze jádra: 3.7-rc8

link

Aktuální vývojová verze jádra je 3.7-rc8, zdráhavě vydaná Linusem 3. prosince. Opravdu jsem nechtěl, aby na to došlo, ale včera se mi moc nechtělo vydávat verzi 3.7 kvůli chybám odhaleným na poslední chvíli, a tak jsem to odložil. A dnes se mi nechtělo ještě víc kvůli návratu problémů s kswapd, takže jsem se nakonec rozhodl vydat další -rc. Jak podotýká, začleňovací okno verze 3.8 bude otevřené až do Vánoc.

Stabilní aktualizace: verze 3.6.9, 3.4.21 a 3.0.54 vyšly 3. prosince. Verze 3.2.35 se mezitím reviduje, vydání lze očekávat kdykoliv.

Citáty týdne: Hugh Dickins, Rusty Russell, Russell King

link

Naprosto schvaluji „whence“ [odkudžto], kteréžto je zajisté posledního argumentu lseek názvem – od dob středověkých, jsem přesvědčen.

Je dobré mít ve zdrojácích jádra takové názvy: až budete mít náladu, najděte prosím nějaké využití pro slova „whither“ [kamžto] a „thrice“ [třikrážte] a „widdershins“ [proti směru ručiček časostroje].

-- Hugh Dickins

Minulý týden jsem byl na dovolené, většinu času jsem strávil kódováním v userspace. Bylo to báječné.

-- Rusty Russell

Pokud je to tak, tak jde o další ukázku toho, jak atomické typy svádí lidi k tomu, že věří, že se jejich kód stává jaksi zázračně bezpečným díky použití tohoto šidítka. Každé použití atomic_t by IMHO mělo být prověřováno a důkladně analyzováno ještě předtím, než se dostane do jádra – mnoho z nich je zabugovaných, protože staví na předpokladu, že vám atomic_t dává cosi kouzelného.

-- Russell King

Opět na téma FALLOC_FL_NO_HIDE_STALE

link

V posledních Jaderných novinách se psalo o rozkolu kvůli začlenění příznaku FALLOC_FL_NO_HIDE_STALE do systémového volání fallocate(). Někteří vývojáři, kterým patch a způsob, jak se dostal do jádra, vadil, volali po jeho odstranění před vydáním verze 3.7. Tehdy se ještě Linus diskuze neúčastnil a nedal najevo, jestli revert přijme.

Tato situace se změnila poté, co se Linuse dotázal Martin Steigerwald. Jeho odpověď byla jednoznačná:

Pokud chcete, aby něco zmizelo, tak chci slyšet *technické* důvody. Ne důvody typu „ale, mně se hrozně nelíbí, jak se to tam dostalo“.

A jestli někdo zranil vaše city, tak si zavolejte maminku a nepruďte mě po mailu. Protože přece nejsem známý pro svou schopnost někoho podporovat a soucítit s ním, že ne?

V diskuzi se objevily technické důvody spolu s dalšími námitkami zaměřenými na postupy a fungování. Ale zdá se býti jasné, že tyto námitky Linuse nepřesvědčily. Pokud se tedy nestane něco překvapivého, tak to vypadá, že se tento nový příznak pro fallocate() do verze 3.7 přece jen dostane, pak už bude součástí jaderného ABI pro uživatelský prostor.

Ovladač PowerClamp

link

Jaderný subsystém správy výkonu se během uplynulých let postupně stával čím dál efektivnějším. Jenže zatímco se vývojáři snaží minimalizovat spotřebu při různých zátěžích, jádru stále schází mechanismus, jak omezovat celkovou spotřebu. Nedávno ohlášený ovladač PowerClamp od Jacoba Pana a Arjana van de Vena má napravit právě toto, alespoň na procesorech Intel.

Většina uživatelů nebude PowerClamp nikdy používat. Obecně totiž platí, že jakmile si člověk pořídí hardware s určitými výpočetními schopnostmi, chce využívat těchto schopností naplno, kdykoliv je to potřeba. Existují ale situace, když dává smysl výkon omezovat. Datacentra mají omezení na spotřebu a svou schopnost chladit, která mohou být důvodem, proč nemít výkon všech systémů vždy na 100 %. Dokonce i vlastníci laptopů nebo handheldů mohou mít zájem o to, aby teplota zařízení nepřekračovala určitou hodnotu; přiliš horký laptop nemusí být příjemné používat, i když se stále pohybuje v povoleném rozmezí. Proto může mít smysl moci systému říct, aby někdy běžel pomaleji.

Ovladač PowerClamp umožňuje administrátorovi, aby nastavil příslušný podíl času, kdy je CPU v klidu, pomocí atributu v sysfs. Tento podíl je v současné implementaci omezen na max. 50 %. Jakmile je tento podíl nastaven, tak jádro začne hlídat „idle“ čas každého z procesorů. Jakmile by podíl tohoto času měl klesnout pod stanovenou hranici, tak je spuštěno speciální jaderné vlákno (zvané kidle_inject/N, kde N je číslo CPU, ke kterému je vlákno přiřazeno), aby situaci napravilo.

Toto vlákno pracuje jako realtime proces s vysokou prioritou, proto dokáže reagovat velmi rychle. Jeho úkol je relativně jednoduchý: podívat se na podíl idle času na přiřazeném CPU a spočítat odchylku od požadované hodnoty. Pak je toho vlákno periodicky spouštěno, zakazuje tik hodin a nutí CPU, aby spalo po nutnou dobu. Také hlídá množství požadované doby spaní, které se neuskuteční kvůli proběhlým přerušením. Během nuceného spánku zůstávají přerušení povolena, takže mohou procesor probudit dřív, než tak učiní ovladač PowerClamp. Ovladač pak tedy čas ztracený přerušeními kompenzuje.

PowerClamp se dokáže na systémech s měnící se zátěží velmi dobře přibížit požadovaným hodnotám. Často ale není cílem samotný idle čas; místo toho jde o to systém udržet pod určitou hranicí spotřeby nebo teploty. Pro něco takového je nutné přidat dodatečnou logiku v uživatelském prostoru. Sledováním parametrů, které nás zajímají, může proces v uživatelském prostoru implementovat řídící smyčku, jež bude upravovat požadovaný podíl klidového času CPU podle potřeby. Ovladač PowerClamp dokáže na tyto změny reagovat relativně rychle, čímž dává tomuto procesu efektivní nástroj pro správu toho, kolik energie systém spotřebuje.

Ovladač prošel několika revizemi bez nějakých zásadních připomínek. Patch pro systém představuje poměrně malé riziko, protože pokud není funkce používána, nedělá nic. Ovladač by se mohl dostat už do jádra verze 3.8. Více informací o něm můžete najít v dokumentaci obsažené v patchi.

Odkazy a zdroje

Kernel coverage at LWN.net: December 6, 2012

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

Jaderné noviny – přehled za duben 2024
Jaderné noviny – přehled za březen 2024
Jaderné noviny – přehled za únor 2024
Jaderné noviny – přehled za leden 2024
Jaderné noviny – přehled za prosinec 2023

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