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 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 15
    včera 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 16
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 11
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 393 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Jaderné noviny – 22. 2. 2018: Dynamické události pro sledování funkcí

    15. 3. 2018 | David Kolibáč | Jaderné noviny | 1913×

    Stav vydání jádra. Dynamické události pro sledování funkcí.

    Stav vydání jádra

    Kernel release status. Jonathan Corbet. 21. února 2018

    Současné vývojové jádro je 4.16-rc2, vydané 18. února. „Jděte a testujte, vypadá to dobře.“

    Stabilní aktualizace: 4.15.4, 4.14.20, 4.9.82, 4.4.116 a 3.18.95 byly vydány 17. února. (Velké) aktualizace 4.15.5, 4.14.21, 4.9.83 a 4.4.117 byly v době psaní článku revidovány a vyšly 23. února.

    Dynamické události pro sledování funkcí

    Dynamic function tracing events. Jonathan Corbet. 15. února 2018

    Co jádro obsahuje sledovací body, vývojáři se dohadují, zda jsou tyto sledovací body součástí ABI jádra. Změny sledovacích bodů už v minulosti musely být vráceny, protože rozbíjely již existující programy v uživatelském prostoru, které na nich začaly záviset. Mezitím obavy ze zafixování interního kódu v určitém stavu komplikovaly přidávání sledovacích bodů do řady jaderných subsystémů. Nyní je na stole návrh funkcionality, která by všechny tyto problémy obešla.

    Otázka, zda jsou sledovací body součástí jaderného ABI, není nepodstatná. Příslib spojený s jaderným ABI říká, že funkční programy nebudou rozbity aktualizací jádra. Časem se vyjasnilo, že tento příslib se vztahuje i na sledovací body. Na povrch to vyplulo nejpatrněji v roce 2011, kdy změna sledovacího bodu rozbila powertop a musela být vrácena do původního stavu. Někteří jaderní správci zakazují nebo výrazně omezují přidávání sledovacích bodů do svých subsystémů, protože se obávají, že by se jim mohlo stát něco podobného jako v případě powertopu. V jádře tím pádem chybí sledovací body, které by se uživatelům mohly hodit.

    Tato tématika se dostala na program mnoha setkání včetně Summitu správců 2017. Tehdy padl chytrý nápad: vývojáři, místo aby na citlivá místa umísťovali sledovací body, by prostě používali značky, které by se za běhu musely explicitně připojit a převést na sledovací body. Doufalo se, že nutnost vyrovnat se s několika překážkami navíc by způsobila, že nový mechanismus by nevytvářel taková očekávání stability ABI. Pak téma na několik měsíců vyšumělo.

    Nedávno se ale vynořil správce sledování Steve Rostedt s variantou původního návrhu, kterou nazývá „dynamicky vytvářené události založené na funkcích“. Podrobnosti se změnily, ale princip vyhnutí se ABI zůstává v zásadě stejný. Klíčový detail, který se výrazně liší, vychází z postřehu, že jádro už disponuje jistým druhem značek, jenž by se pro účely sledování dal použít.

    Jaderný kód je obvykle překládán s volbami, které se běžně používají při profilování kódu. Tím pádem každá funkce začíná voláním funkce nazvané mcount() (nebo v případě novějšího překladače __fentry()__). Při profilování programu v uživatelském prostoru sleduje mcount() volání jednotlivých funkcí a kolik času se přitom zabere. Jádro ale nahrazuje mcount() vlastní variantou, která oplývá schopnostmi jako sledování funkcí. Většinou se volání mcount() patchi zcela odstraní, ale dají se povolit za běhu, když je potřeba sledovat volání určité funkce.

    Jsou i další možná využití této vazby při vstupu do funkce. Rostedtův patch ji používá, aby umožnil vytvoření sledovacího bodu na začátku libovolné jaderné funkce za běhu. Po připojení ovládacího souborového systému tracefs jde nový sledovací bod vytvořit příkazem jako tento:

    echo 'SyS_openat(int dfd, string path, x32 flags, x16 mode)' \
         > /sys/kernel/tracing/function_events

    Tento příkaz si vyžádá vytvoření sledovacího bodu při vstupu do SyS_openat(), jaderné implementace systémového volání openat(). Sledovací bod bude hlásit čtyři hodnoty: deskriptor souboru adresáře (dfd), danou cestu (path) a argumenty flags a mode. Tento sledovací bod se zobrazí v events/functions a bude vypadat jako jakýkoliv jiný sledovací bod v jádře. Půjde se na něj obvyklým způsobem dotazovat a povolit/zakázat ho. Co je zajímavé, v tomto případě míří path do uživatelského prostoru, ale sledovací systém i přesto data získá a vytiskne.

    Zjevně zatím není veškerá práce na této záležitosti hotova: „Musím přepsat sledování grafů funkcí a musím být schopen přidávat dynamické události při návratu z funkce.“ Ale ústřední část už je, zdá se, tam, kde má být, a funguje. Tím pádem ale zbývá jedna podstatná otázka: stačí to, abychom se vyhnuli vytvoření nové skupiny jaderných rozhraní, která by se stala součástí stabilního ABI? Mathieu Desnoyers se obává, že nikoliv:

    Ten problém nezmizí mávnutím kouzelného proutku, ani když budeme mít tyhle nástroje navázané na jména/argumenty funkcí. Jakmile se kód jádra změní, rozšířené nástroje na analýzu sledování se začnou kácet jeden po druhém a budeme tam, kde jsme byli. S tou výjimkou, že tentokrát se součástí ABI stane interní hlavička funkce.

    Avšak Linus Torvalds s touto obavou nesouhlasil. Krok navíc, který by byl nutný k navázání se do jádra, vede k jinému pohledu na pozici takové vazby:

    Všichni *rozumějí*, že to je jako debugger: když máte gdb skript, který zobrazuje nějaké informace, a změníte zdrojový kód, pak *samozřejmě* budete muset upravit i ten skript debuggeru. Zdrojový kód neudržujete neměnný, jenom abyste udělali radost svému gdb skriptu. To by bylo přihlouplé.

    Na druhé straně lidé opravdu uvěřili, že explicitní sledovací body mají v dlouhodobém časovém horizontu nějaký smysl.

    Pokud tento úhel pohledu odpovídá realitě, nový mechanismus dynamických sledovacích bodů by mohl významně pomoci rozptýlit problémy s ABI. Množství nových pevných sledovacích bodů v jádře by se nejspíš zmenšilo, protože vývojáři by mohli jednoduše přejít na dynamickou variantu. Když se v budoucnu přidají obvyklé sledovací body, budou nejspíš navrženy tak, aby podporovaly nějaký nástroj na správu systému, takže by mohly být od samého začátku považovány za součást ABI.

    Přitom se pochopitelně předpokládá, že tato řada patchů bude nakonec začleněna. Alexei Starovoitov tomu trochu odporoval, stěžoval si, že nové rozhraní skoro nic nového nepřináší oproti tomu, co jde již nyní dělat s kprobes. Nelíbilo se mu ani textové rozhraní a (ne zrovna překvapivě) navrhoval k tahání určitých kousků informací z jádra spíše používat BPF. Rostedt ale poukázal, že mnoho vývojářů odrazují složité začátky s BPF, a tak by preferovali něco jednoduššího.

    Rostedt řekl, že rozhraní považuje za užitečné, ale nebude v jeho vývoji pokračovat, pokud ostatní nesouhlasí: „Pokud si ostatní myslí, že by to bylo přínosné, byl bych rád, kdyby se ozvali.“ Zatím se vyjádřilo několik málo lidí. Jestli si další vývojáři myslí, že by mechanismus pro dynamické sledování funkcí byl užitečný, mohli by o svém postoji dát vědět.

           

    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ář

    15.3.2018 21:50 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 22. 2. 2018: Dynamické události pro sledování funkcí
    To se již vývojáři nechtějí učit BFP (resp. fyziku)? Nechodí taky někam na náměstí demonstrovat bůh ví za co či proti čemu?
    Archlinux for your comps, faster running guaranted!
    16.3.2018 19:09 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 22. 2. 2018: Dynamické události pro sledování funkcí

    Kéž by to bylo tak jednoduché. Nejde samozřejmě o to, že by někdo pořádal demonstrace, ale o to, že zvládnout eBPF (ne, nebavíme se o tom starém jednoduchém BPF) do té míry, aby ho člověk dokázal použít pro konkrétní účel, znamená nemalou (časovou) investici. Když člověk řeší nějaký bug, tak je obvykle rychlejší a jednodušší si vybuildit testovací jádro, kam narve nějaký ten trace_printk(). Až získá, co potřeboval, tak se zase bude věnovat něčemu jinému a za čas se situace bude opakovat. Ani nepočítám, kolik nástrojů už mám na pomyslném seznamu "na co se podívám, až bude čas" (třeba takový quilt už je tam asi sedm let).

    Nastudovat si, jak použít kprobe na to, abych se podíval na parametry funkce, to je řekněme dvacet minut poprvé a pak třeba pět pro dohledání podrobností, až to budu potřebovat časem znovu (pokud to nebudu potřebovat tak často, že si to radši zapamatuju). Budu-li potřebovat něco složitějšího, co nepůjde bez eBPF, jsou ty časy někde úplně jinde, takže se nelze divit, že většina raději sáhne po jiném řešení. Demonstrovat na náměstí nepůjdou, ale tu featuru prostě nepoužijí.

    Můžete s tím nesouhlasit, můžete na to nadávat, můžete je přesvědčovat, ale to je asi tak všechno, co se s tím dá dělat. Stačí se podívat, jak absurdní výmluvy spousta lidí dodnes používá k ospravedlnění toho, že ještě po 19 letech používají ifconfig, route nebo netstat.

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.