abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:44 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.

    Ladislav Hagara | Komentářů: 10
    včera 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 22
    včera 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    27.10. 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    27.10. 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    27.10. 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 1
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 4
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Jaderné noviny – 14. 2. 2013: Rozumnější hotplug CPU

    4. 3. 2013 | Luboš Doležel | Jaderné noviny | 3477×

    Aktuální verze jádra: 3.8-rc7. Citáty týdne: Al Viro, Luc Verhaegen, Greg Kroah-Hartman. Rozumnější hotplug CPU.

    Obsah

    Aktuální verze jádra: 3.8-rc7

    link

    Aktuální vývojová verze jádra je 3.8-rc7 vydaná 8. února. Linus k tomu řekl: Tak tady to je. Hlavně aktualizace ovladačů (USB, síť, radeon, regulator, zvuk) s nahodilou várkou dalších věcí (btrfs, síť apod.). A je to povětšinou velmi malé.

    Stabilní aktualizace: verze 3.7.7, 3.4.30 a 3.0.63 vyšly 11. února; verze 3.5.7.5 vyšla 8. února.

    Verze 3.7.8, 3.4.31 a 3.0.64 se aktuálně revidují; jejich vydání lze očekávat 14. února nebo později.

    Citáty týdne: Al Viro, Luc Verhaegen, Greg Kroah-Hartman

    link

    Co se mě týče, tak jediné záruky na stabilitu rozhraní ve VFS se týkají rozhraní pro systémová volání. To znamená, že zde nemohou být žádné sledovací body [tracepoints]. Basta.

    -- Al Viro

    Zdravím ARM!

    Nikam jen tak nezmizíme. Už nás nemůžete umlčet nebo zastavit a bude stále obtížnější si nás nevšímat.

    Je jen otázkou času, než vytvoříme open source ovladač, který se ve výkonu vyrovná vaší binárce. A teď už jde jen o týdny a měsíce. Žádosti vašich vlastních zákazníků, abyste tento open source projekt podpořili, budou už jen hlasitější.

    Tak proti nám prosím přestaňte bojovat. Přijměte nás. Pracujte s námi. Vaši zákazníci a akcionáři vás za to budou mít rádi.

    -- Luc Verhaegen

    Rozumnější hotplug CPU

    link

    Jednou z nějvětších příčin změn ve vývojovém cyklu 3.8 bylo odstranění skupiny maker __devinit. Tato makra označovala kód a data potřebná jen při inicializaci zařízení a bylo tedy po jejím dokončení možné se jich zbavit. Tato makra šla pryč z prostého důvodu: hardware se stal natolik dynamickým, že inicializace není nikdy hotová; vždy se může vynořit něco nového a už nemá smysl sestavovat jádro, které by si s tím nedovedlo poradit. Ale i v takovém světě jsou CPU obecně vnímána jako statická. Jenže i CPU mohou přibývat nebo ubývat a to je motivací pro změny v tom, jak je jádro spravuje.

    Hotplug je známou věcí u klávesnic, tiskáren nebo úložišť, ale ne moc u CPU: dodatečná CPU na USB se na trhu moc neobjevují. I tak ale jádro už nějakou dobu hotplug CPU podporuje; původní verze Documentation/cpu-hotplug.txt byla zařazena v roce 2006 pro jádro 2.6.16. Tento dokument zmiňoval několik využití pro tuto funkci: high-end NUMA hardware, který skutečně má podporu pro procesory připojené za běhu a schopnost v HA systému vypnout vadný procesor. Od té doby se našlo další využití, mimo jiné při uspávání systému (kde jsou všechna CPU až na jedno „vysunuta“ přes uspáním) a virtualizaci, kde virtuální CPU mohou být přidávána (nebo odebírána) dle potřeby.

    Proto je hotplug CPU užitečnou funkcí, jenže současná implementace není v jádře zrovna oblíbená; v nedávném patchi, který měl stav zlepšit, Thomas Gleixner poznamenal, že současná implementace hotplugu CPU se stává čím dál větší noční můrou plnou race conditions a nedokumentovaného chování. Hotplug CPU vykazuje známky funkce, která se časem značně vyvíjela, aniž by se jí dostalo řádného dohledu, mimo jiné pak výčet kroků při odpojení procesoru není opakem toho, co se děje při připojení. Ale většina problémů s hotplugem CPU je svalována na rozsáhlé používání notifikátorů, ke kterému tam dochází.

    Jaderný mechanismus notifikátorů je způsobem, jak může jaderný kód požádat o zpětné volání, kdykoliv dojde k události, o kterou se zajímá. Jde vlastně o obecné háčky, které může používat kdokoliv v jádře – ale vypadá to, že to tak doopravdy i je. Hodně lidí si na ně stěžuje, ukázkou je tento Linusův komentář reagující na Thomasův patch:

    Notifikátory jsou ohavnost a snad každé jejich použití je závažnou chybou v návrhu. Mají problémy se zamykáním, zavádějí nahodilá interní API, která je těžké pak opravovat (protože se vám na ně napojí náhodní lidé, což je velkým *smyslem* těchto notifikačních řetězců).

    Notifikátory navíc kód znepřehledňují, protože není snadné zjistit, co se kdy stane v řetězci notifikátoru (který vzniká za běhu): může v něm být libovolná sada callbacků v jakémkoliv pořadí. Požadavky na pořadí u konkrétních notifikátorů to pak samy o sobě dokážou ještě pěkně zkomplikovat.

    Proces spojený s vysunutím CPU vyžaduje překvapivě mnoho úkonů. Plánovač musí být upozorněn, aby mohl přesunout úlohy pryč z dotčeného CPU a ukončit přísušnou frontu pro běh [run queue]. Jaderná vlákna určená pro konkrétní CPU musejí být upozorněna, aby se ukončila, nebo se „zaparkovala“. Správci frekvence CPU se musejí dozvědět, že se už o tento procesor nemusejí zajímat. Snad všechno, co má proměnné zvlášť pro každé CPU, musí na odchod CPU reagovat. Časovače běžící na daném CPU musejí být přesunuty. Subsystém RCU se musí dozvědět, že už nemá CPU sledovat a má se postarat o všechna zpětná volání RCU pro dané CPU. Každá architektura má své vlastní nízkoúrovňové detaily, které se musí řešit. Subsystém událostí perf má také svou vlastní úctyhodnou sestavu požadavků. A tak dále; tento seznam není zdaleka kompletní.

    Všechny tyto operace jsou v současné době vykonány pomocí skupiny notifikačních zpětných volání, jež jsou při troše štěstí zavolána ve správném pořadí. Přidání nového CPU vyžaduje odpovídající opačnou sadu operací, ale ty jsou řešeny asymetrickým způsobem pomocí jiné skupiny zpětných volání. Výsledkem je to, že celý mechanismus je velmi křehký a jen málo lidí doopravdy rozumí tomu, co se při přidání nebo odebrání CPU musí udělat.

    Thomas neusiluje o přepsání všech notifikačních funkcí nebo zásadní přepis chování při hotplugu CPU – alespoň zatím ne. Namísto toho se soustřeďuje na zavedení nějakého pořádku v celém procesu, aby bylo možné mu na pohled porozumět. Proto nahradil současnou skupinu notifikačních řetězců lineární sekvencí stavů, kterými se má při vypínání CPU projít. Máme tu jediné pole struktur cpuhp_states, každá má jeden příslušný stav:

    struct cpuhp_step {
    	int (*startup)(unsigned int cpu);
    	int (*teardown)(unsigned int cpu);
    };
    

    Funkce startup() bude zavolána při připojení CPU, zatímco teardown() během opačného procesu. Mnoho stavů má aktuálně jen jednu nebo druhou funkci; konečným cílem je to, aby proces byl symetričtější. V počátečním patchi vypadají stavy takto.

    Stavstartupteardown
    CPUHP_CREATE_THREADS
    CPUHP_PERF_X86_UNCORE_PREP
    CPUHP_PERF_X86_PREPARE
    CPUHP_PERF_BFIN
    CPUHP_PERF_POWER
    CPUHP_PERF_SUPERH
    CPUHP_PERF_PREPARE
    CPUHP_SCHED_MIGRATE_PREP
    CPUHP_WORKQUEUE_PREP
    CPUHP_RCUTREE_PREPARE
    CPUHP_HRTIMERS_PREPARE
    CPUHP_TIMERS_PREPARE
    CPUHP_PROFILE_PREPARE
    CPUHP_X2APIC_PREPARE
    CPUHP_SMPCFD_PREPARE
    CPUHP_SMPCFD_PREPARE
    CPUHP_SLAB_PREPARE
    CPUHP_NOTIFY_PREPARE
    CPUHP_NOTIFY_DEAD
    CPUHP_CPUFREQ_DEAD
    CPUHP_SCHED_DEAD
    CPUHP_CLOCKEVENTS_DEAD
    CPUHP_BRINGUP_CPU
    CPUHP_AP_OFFLINE Aplikační stavy procesoru (AP)
    CPUHP_AP_SCHED_STARTING
    CPUHP_AP_PERF_X86_UNCORE_STARTING
    CPUHP_AP_PERF_X86_AMD_IBS_STARTING
    CPUHP_AP_PERF_X86_STARTING
    CPUHP_AP_PERF_ARM_STARTING
    CPUHP_AP_ARM_VFP_STARTING
    CPUHP_AP_ARM64_TIMER_STARTING
    CPUHP_AP_KVM_STARTING
    CPUHP_AP_X86_TBOOT_DYING
    CPUHP_AP_S390_VTIME_DYING
    CPUHP_AP_CLOCKEVENTS_DYING
    CPUHP_AP_RCUTREE_DYING
    CPUHP_AP_SCHED_NOHZ_DYING
    CPUHP_AP_SCHED_MIGRATE_DYING
    CPUHP_AP_MAZ Značí konec stavů AP
    CPUHP_TEARDOWN_CPU
    CPUHP_PERCPU_THREADS
    CPUHP_SCHED_ONLINE
    CPUHP_PERF_ONLINE
    CPUHP_SCHED_MIGRATE_ONLINE
    CPUHP_WORKQUEUE_ONLINE
    CPUHP_CPUFREQ_ONLINE
    CPUHP_RCUTREE_ONLINE
    CPUHP_NOTIFY_ONLINE
    CPUHP_PROFILE_ONLINE
    CPUHP_SLAB_ONLINE
    CPUHP_NOTIFY_DOWN_PREPARE
    CPUHP_PERF_X86_UNCORE_ONLINE
    CPUHP_PERF_X86_ONLINE
    CPUHP_PERF_S390_ONLINE

    Při pohledu na tento seznam začíná být jasné, proč je těžké mechamismu hotplugu CPU porozumět. Je v tom takový nepořádek, že se Thomas ani nesnaží na tom něco zásadně měnit; většina stávajících zpětných volání zůstává beze změny, jen se spouštějí trochu jinak. Cílem této práce podle Thomase je:

    Jde o to vyjasnit omezení týkající se pořadí. Jde o to zdokumentovat stávající hrůzu tak, aby každý dokázal procesu hotplug porozumět bez halucinogenních drog.

    Jakmile je do mechanismu hotplugu CPU vnesen nějaký pořádek, pak je možné začít uvažovat o pročištění. Cílem je mít mnohem méně stavů viditelných zvenčí; pro ovladače a souborové systémy budou existovat jen stavy „příprava“ a „povoleno“ bez řazení mezi subsystémy. Ovladače a souborové systémy nebudou moci jakýmkoliv způsobem operaci hotplugu zastavit. Jakmile budou úpravy hotové, pak bude subsystém hotplugu mnohem předvídatelnější a mnohem více podrobností zůstane zbytku jádra skryto.

    To je ale hudbou budoucnosti; nejprve je nutné vytvořit příslušnou infrastrukturu. Je pravděpodobné, že si první epizoda Thomasova patche vyžádá alespoň jedno opakování, takže se to do verze 3.9 asi nedostane. Od verze 3.10 ale asi budeme svědky významných změn v tom, jak hotplug CPU probíhá; výsledkem by měl být srozumitelnější a spolehlivější kód.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.3.2013 16:15 Hue | skóre: 6
    Rozbalit Rozbalit vše Re: Jaderné noviny – 14. 2. 2013: Rozumnější hotplug CPU
    Nějak chybí Gregův citát...
    4.3.2013 21:21 prcek
    Rozbalit Rozbalit vše Jazykove okenko
    s/úctihodnou/úctyhodnou/
    8.3.2013 07:27 Hue | skóre: 6
    Rozbalit Rozbalit vše Re: Jaderné noviny – 14. 2. 2013: Rozumnější hotplug CPU
    Ony už se teď články neopravují?
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.