abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    11.5. 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 13
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 22
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 53
    9.5. 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 20
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 7
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (68%)
     (7%)
     (12%)
     (13%)
    Celkem 189 hlasů
     Komentářů: 11, poslední 10.5. 18:00
    Rozcestník

    Jaderné noviny – 9. 12. 2009

    8. 1. 2010 | Jirka Bourek | Jaderné noviny | 3000×

    Aktuální verze jádra: 2.6.32. Citáty týdne: Paul McKenney, Linus Torvalds, Steven „Bam Bam“ Rostedt. Vyřešeno pojmenování spinlocků. Začleňovací okno 2.6.33, část první. Minimalizace dopadů osazování jádra.

    Obsah

    Aktuální verze jádra: 2.6.32

    link

    Jádro 2.6.32 je venku, vydáno bylo 2. prosince. Mezi významnější vlastnosti v 2.6.32 patří devtmpfs, kus práce na škálovatelnosti blokové vrstvy, HWPOISON, jádrem sdílená paměť, mnoho přírůstků do subsystému událostí výkonnosti [perf events] a další. Spoustu detailů vizte na stránce o 2.6.32 na KernelNewbies.

    Začleňovací okno 2.6.33 je otevřené; v článku níže vizte shrnutí nejvýznamnějších změn, které byly zatím začleněny.

    Stabilní aktualizace jádra: 2.6.31.7 obsahující velmi dlouhý seznam oprav, bylo vydáno 8. prosince. Ve stejnou dobu bylo vydáno 2.6.27.40 rychle následované 2.6.27.41, které opravovalo problém při překladu.

    Citáty týdne: Paul McKenney, Linus Torvalds, Steven „Bam Bam“ Rostedt

    link

    Bohužel ani ty nejlepší lidské reflexy prostě nemohou stačit 5GHz CPU. I kdybychom si představili kofeinem nadopovaného 5GHz superhrdinu, musel by se měřit s několika miliony počítačů. A tak moderní mikroprocesor překonává nesčetná milénia evoluce a frustruje tím nesčetné počty rádoby počítačových profesionálů.

    -- Paul McKenney

    Faktem je, že pokaždé, když někdo přijde s novým mechanismem pro zamykání, VŽDYCKY HO MÁ BLBĚ. Nedělejte to.

    -- Linus Torvalds

    Ale my jaderní vývojáři zůstáváme vzhůru pozdě do noci, pijeme Jolt (nebo pivo, pokud jste v Evropě) a naše mozkové buňky se spékají do logických obvodů, takže chápání konceptů, které nejsou vytesány do kamene, pro nás postupně začíná být příliš namáhavé a my se nakonec musíme vzdát a přestat řešit tu jednu poslední chybu, abychom si mohli odpočinout se svou drahou polovičkou, která spí od devíti od večera.

    To znamená, že používání DECLARE_* a DEFINE_* nás přehoupne do normálnosti a je potřeba se tomu vyhnout. Je potřeba zavést nové jméno, které by jasně popisovalo mystickou CPP magii, ze které se skládá TRACE_EVENT. Nějaké, které nás dokáže přivést zpět ke kořenům. Někam, kde všechno začíná. Do doby kamenné.

    Proto tento patch přejmenovává MAKRA na nejzjevnější možné definice. Na takové, na které jsme měli myslet hned ze začátku.

    s/DEFINE_EVENT_CLASS/FRED/g
    s/DEFINE_EVENT/WILMA/g
    s/TRACE_EVENT/BARNEY/g

    -- Steven „Bam Bam“ Rostedt

    Vyřešeno pojmenování spinlocků

    link

    Případné začlenění spících spinlocků ze stromu realtime preempce vyžaduje rozdělení existujících zámků na dva typy: Na ty, které v realtime stromě smí spát (většina), a ty, které musí zůstat skutečnými spinlocky. Na Jaderném summitu 2009 se rozhodlo proti přejmenovávání velkého počtu běžných zámků, ale nevzešlo odtud jméno pro typ „čistého“ spinlocku.

    Jednou možností bylo raw_spinlock_t, ale toto jméno se již používá v kódu lockdep. Po mnoha dalších možných jménech, která byla zvažována, vyhrál Linusův návrh: arch_spinlock_t. Toto jméno nese informaci o tom, že se jedná o nízkoúrovňový spinlock, který je implementován kódem specifickým pro architekturu; lepší nápad se neobjevil, takže u tohoto jména zůstalo.

    Thomas Gleixner zaslal patch, který změnu provádí. Stojí za to poznamenat, že i když nový typ není raw_spinlock_t, stále se k získání zámku arch_spinlock_t volá raw_spin_lock(). V době psaní tohoto článku nebyl tento patch začleněn do 2.6.33, ale je šance, že bude.

    Začleňovací okno 2.6.33, část první

    link

    Linus začal začleňovat patche pro vývojový cyklus 2.6.33 5. prosince. Začleňovací okno začalo pomalu, ale pak Linus začal dohánět ztracený čas; v době psaní tohoto článku bylo začleněno nějakých 3900 sad změn.

    Mezi změny viditelné pro uživatele patří:

    • Framework ftrace se dočkal mnoha vylepšení, včetně možnosti sledovat několik procesů simultánně, podpory regulárních výrazů ve sledovacích filtrech, sledování událostí velkého jaderného zámku a sledování přístupu k libovolným jaderným proměnným a jejich modifikací.

    • Pravděpodobně nejvýznamnější je (pro ftrace) začlenění sady patchů pro dynamické sondy, což umožňuje umístit za běhu libovolné sledovací body. Nástroj „perf“ byl rozšířen a je nyní schopen umístit a používat dynamické sondy.

    • „Perf“ byl vylepšen i v dalších oblastech, mezi ně patří přidání nového frameworku pro sady benchmarků, příkazů pro záznam a analýzu jaderných alokací paměti a sady háčků pro obecný skriptovací jazyk.

    • Dlouhodobě trvající snaha Erica Biedermana odstranit binární sysctl() se konečně dostala do hlavní řady.

    • Bylo přidáno systémové volání recvmmsg()

    • Předvídající [anticipatory] I/O plánovač byl odstraněn ve prospěch CFQ, o kterém panuje názor, že poskytuje nadmnožinu vlastností.

    • Byl začleněn nový, sjednocený řadič propustnosti blokového I/O.

    • Síťová vrstva získala podporu pro Transakce s TCP cookie [PDF], mechanismu, který umožňuje rychlejší, bezpečnější a robustnější zahajování TCP spojení.

    • Bylo začleněno distribuované blokové zařízení – DRBD.

    • Nové ovladače:

      • Desky a procesory:

        • desky ST-Ericsson U8500,
        • CPU pro systém na čipu Marvell Dove (88AP510),
        • telefony Palm Centro 685 a
        • desky CompuLab CM-T35.
      • Síťování:

        • TI High End CAN řadiče,
        • bezdrátové čipy Intel MultiCom 3200,
        • bezdrátové čipové sady Ralink rt2800,
        • SPI CAN řadiče Microchip MCP251x,
        • CAN řadiče založené na Freescale MSCAN a
        • 10G ethernetové řadiče SolarFlare SFC9000.
      • Zvuk:

        • rádiové tunery miroSOUND PCM20,
        • stereofonní sluchátkové zesilovače Texas Instruments TPA6130A2,
        • kodeky TI tlv320dac33,
        • kodeky Asahi Kasei AK4113 a AK4671,
        • audio subsystémy založené na WM8580 na systémech SMDK64xx,
        • zvuková zařízení Wolfson Micro WM8711/L a
        • audio adaptéry Raumfeld.
      • Různé:

        • sériové porty GRLIB APBUART,
        • čipy pro reálný čas Oki MSM6242 a
        • RTC Ricoh RP5C01.

    Mezi změny viditelné pro jaderné vývojáře patří:

    • Nové makro unreachable(), jež lze použít k označení kódu, který nikdy nebude vykonán. Jeho hlavní aplikací jsou makra jako BUG().

    • Pro ovládání chmod(), chown() a chroot() byly přidány nové háčky pro bezpečnostní moduly založené na cestách.

    • Nová varianta RCU nazvaná „malé RCU“, která je určena pro ne-SMP případy, kde je potřeba minimalizovat otisk v paměti.

    • printk_ratelimit() je nyní znovu možné používat v atomickém kontextu (Vezměte nicméně na vědomí, že existují vývojáři, kteří by tuto funkci rádi odstranili ve prospěch nějakého lokálnějšího omezování četnosti vypisování.)

    • Významně se zjednodušilo vytváření téměř identických sledovacích bodů. TRACE_EVENT_TEMPLATE() má syntaxi identickou s TRACE_EVENT(), ale vytváří šablonu, kterou lze použít jednodušším makrem DEFINE_EVENT() k vytvoření specifického sledovacího bodu. Kód se zjednodušuje a vedlejším efektem je, že jádro se zmenší.

    Začleňovací okno by mělo zůstat otevřené alespoň ještě jeden týden; očekávejme začlenění o trochu většího množství kódu, než se okno uzavře.

    Minimalizace dopadů osazování jádra

    link

    Minimalizace režie různých jaderných mechanismů pro ladění a sledování je důležitá z několika důvodů. Pro statické sledovací nástroje, jako jsou sledovací body, platí, že jejich vliv na systém, když nejsou zapnuty, musí být velmi nízký, jinak je nikdo nebude používat – nebo nebudou začleněny. Krom toho – jako u jakéhokoliv jiného sledovacího nástroje – musí být jejich vliv, když jsou zapnuty, co nejmenší, aby se sledované chování v důsledku sledování významně nezměnilo. Dva oddělené návrhy, návěští skoků [jump labels] pro sledovací body a optimalizace skoků ksond [kprobes], se oba snaží omezit vliv, který má osazení sledovacími nástroji na výkonnost. Krom toho sdílí nějaký kód.

    Optimalizaci skoků ksond navrhl Masami Hiramatsu, režii volání ksondy snižuje přibližně na pětinu a za to platí spotřebou paměti navíc. Podle Masamiho se trvání ksond, když byly touto technikou optimalizovány, snížilo z 0,68 μs (32 bit) a 0,91 μs (64 bit) na 0,06 μs (oba). Návratové ksondy [kretprobes] spadly z 0,95 μs (32 bit) a 1,21 μs (64 bit) na 0,30 μs a 0,35 μs v uvedeném pořadí. Veškeré testování probíhalo na 2,33GHz procesoru Xeon.

    Kvůli takovým číslům člověk vyvalí oči, obzvlášť když optimalizace přidává přibližně jenom 200 bytů za sondu. Základním nápadem je použít místo bodu přerušení [breakpoint] instrukci skoku a tak implementovat sondy, kdekoliv je to možné. Patch obsahuje poměrně složité „bezpečnostní kontroly“, které se ujišťují, že je optimalizaci možné provést. Navíc předtím, než je cokoliv z toho provedeno, je vložena ksonda běžná založená na bodě přerušení – pokud optimalizaci nelze provést, použije se ta.

    Instrukce skoku, která se má vkládat na adresu, kde se má sledovat, je delší než jeden byte, takže je nutné se při optimalizaci dívat na kód, který tím bude ovlivněn. Pokud zasažená oblast leží na hranici mezi funkcemi (tj. instrukce skoku by vytekla ze sledované funkce do další), optimalizace se neprovádí. Sledovaná funkce se poté dekóduje a hledá se instrukce skoku, která by do ovlivněné oblasti mohla skočit; pokud žádná není nalezena, optimalizace pokračuje.

    Instrukce umístěné na adrese, která se bude sledovat, je samozřejmě nutné vykonat, i když jsou nahrazeny skokem, takže je vytvořen buffer pro „objížďku“. Objížďkový buffer emuluje výjimku, která obsahuje instrukce zkopírované ze sledovaného místa následované skokem na původní cestu vykonávání. Buffer je použit poté, co se vykoná samotný kód ksondy, aby mohl doběhnout kód za touto sondou.

    Jakmile je vytvořen objížďkový buffer, je ksonda zařazena do pracovní fronty optimalizátoru ksond, kde je do místa sledování patchován skok. Optimalizátor se musí ujistit, že neprobíhají žádná přerušení, a to udělá použitím synchronize_sched() ve funkci pracovní fronty. Když se ta dokončí, funkce text_poke_fixup(), která je přidána jako součást sady patchů, modifikuje kód a vloží do něj skok.

    Patch text_poke_fixup() je ten kousek, který je sdílen s návěštími skoků. Vypadá takto:

    void *text_poke_fixup(void *addr, const void *opcode, size_t len,
                          void *fixup);

    kde addr ukazuje na pozici, která se má změnit, opcodelen specifikují nový operační kód (a jeho délku), který tam má být zapsán. fixup je adresa, kam má procesor skočit, pokud narazí na addr, když probíhá modifikace.

    text_poke_fixup() v podstatě vloží přerušovací bod, který vykoná kód na fixup místo na addr a ten synchronizuje na všechna CPU. Potom modifikuje všechny ostatní byty (kromě prvního) v oblasti a opět vše synchronizuje na všechna CPU. Další krok je modifikace prvního byte, což opět vyžaduje synchronizaci, načež je bod přerušení vymazán. Všechna volání provedená během modifikace jsou bodem přerušení přesměrována do kódu fixup.

    Návěští skoků používají stejnou techniku, ale vzhledem k tomu, že se vztahují ke statickému osazení (sledovacím bodům [tracepoint]), jejich úkolem je minimalizovat dopad v pravděpodobném případě, že je sledovací bod zakázán. To dělá použitím konstrukce asm goto v assembleru, která bude k dispozici v blížícím se GCC 4.5 a která umožňuje skok na návěští.

    Pro sledovací bod je to myšleno tak, že v zakázaném případě bude tvořen pětibytovým NOP (velikost vhodná k tomu, aby ho bylo možné přepsat skokem) následovaným skokem, který přeskakuje zakázaný sledovací kód. Když je sledovací bod povolen, text_poke_fixup() změní NOP na skok na návěští v makru DECLARE_TRACE() – na kód, který byl přeskakován původním nepodmíněným skokem.

    Patch pro návěští skoků obsahuje kód, který se stará o stav sledovacích bodů včetně návěští a adres společně s aktuálním stavem povoleno/zakázáno sledovacího bodu. Je to trochu hackoidní zneužívání preprocesoru a assembleru, ale podle Jasona Barona, který patch navrhl, je výsledkem průměrné zlepšení o 30 cyklů na sledovací bod na x86_64 systémech, které jsem testoval.

    Návěští skoků odstraňují současný test a skok, který se provádí pro každý sledovací bod, protože dokáže dynamicky vypínat a zapínat kód sledovacího bodu. Přidání NOPu a nepodmíněného skoku přidává oproti vynechanému skoku 2-4 cykly, říká Jason, což je pro tento druh sledování poměrně levné.

    Obě tyto techniky pravděpodobně budou potřebovat „trochu povařit“, než budou připraveny pro hlavní řadu. Návěští skoků jsou poměrně mladý návrh a spoléhají se na vlastnost překladače, který ještě nebyl vydán, což je bude brzdit. Reakce na oba návrhy byly nicméně vcelku pozitivní, což naznačuje obecný souhlas s jejich cíli. Omezení režie sledování a ladění je něco, s čím bude nesouhlasit jenom málokdo.

           

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

    8.1.2010 10:01 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 9. 12. 2009
    používání DECLARE_* a DEFINE_* bychom nás
    - to bychom je tam navíc.

    Jinak díky za překlad.
    When your hammer is C++, everything begins to look like a thumb.
    8.1.2010 10:12 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Jaderné noviny – 9. 12. 2009
    Moje chyba, díky.
    8.1.2010 11:44 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 9. 12. 2009
    A ty hodiny spánku mají být, že spí už od devíti večer. nikoliv od devíti do večera.
    8.1.2010 11:56 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Jaderné noviny – 9. 12. 2009
    Vždyť je tam napsáno "od devíti od večera".
    8.1.2010 13:08 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Jaderné noviny – 9. 12. 2009
    Já původně taky přečetl do večera. IMHO od devíti večer je běžnější a bezpečnější :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.

    Založit nové vláknoNahoru

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