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í
×

    dnes 15:44 | Pozvánky

    Konference OpenAlt 2026 proběhne tento víkend 7. a 8. listopadu na FIT VUT v Brně. Jedná se již o 21. ročník této konference, která propojuje otevřené technologie, svobodný software, hardware a lidi, kteří chtějí věci nejen používat, ale také jim rozumět a měnit je k lepšímu. Více o konferenci v příspěvku OpenAlt 2026: technologie, které dávají svobodu na blogu spolku OpenAlt.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | IT novinky

    Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 16 GB varianty Raspberry Pi o 80 dolarů a 16 GB varianty Raspberry Pi Compute Module 5 o 40 dolarů. Cena Raspberry Pi 500+ se nemění.

    Ladislav Hagara | Komentářů: 0
    dnes 15:11 | IT novinky

    Francouzské Národní shromáždění přijalo 30. října 2026 poměrem 11 hlasů pro, 10 proti a 14 abstencí pozměňovací návrh I-1358 ke státnímu rozpočtu na rok 2027, který zavádí daň z objemu dat doručovaných uživatelům internetu. Návrh socialistického poslance Laurenta Lhardita stanovuje sazbu 0,055 eura za gigabajt, tedy 55 eur za terabajt. Zatím nejde o platný zákon, ale o dílčí hlasování během prvního čtení rozpočtu. Daň by měli platit

    … více »
    vencour | Komentářů: 1
    včera 12:44 | IT novinky

    Nizozemská vláda ve snaze šetřit a zvyšovat efektivitu s využitím umělé inteligence (AI) hodlá zrušit asi 25.000 pracovních míst ve státní správě. Cílem je postupně dosáhnout ročních úspor až 3,5 miliardy eur (85,2 miliardy Kč). Na konci loňského roku ve státní správě pracovalo rekordních 160.000 lidí. „Nemůžeme pokračovat v tom, co jsme dělali dosud,“ uvedl státní tajemník pro efektivní fungování vlády Eric van den Burg. „Proto

    … více »
    Ladislav Hagara | Komentářů: 32
    včera 12:00 | IT novinky

    Příspěvek na blogu PRUSA 3D představuje fotoaparát CAIM1 (Counter Artificial Intelligence Machine 1). Uměle vytvořený obsah je každým dnem těžší rozeznat od skutečných záběrů či fotografií, což podrývá důvěryhodnost žurnalistiky, archivních materiálů i každodenní tvorby obsahu. Fotoaparát CAIM1 byl vyvinut právě k tomu, aby ověřoval původ fotografií a videí přímo během jejich pořizování. Uvnitř fotoaparátu se nachází hardwarová Web3 peněženka se zabezpečovacím čipem Tropic Square TROPIC01.

    Ladislav Hagara | Komentářů: 7
    včera 00:11 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 4.1 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 0
    31.10. 23:33 | Zajímavý článek

    Při běžné migraci virtuálního stroje mezi hypervizory se jeho MAC adresa přesune na jiný leaf switch. EVPN tuto změnu distribuuje pomocí BGP Type-2 route a MAC mobility sequence number. Problém nastává, pokud útočník podvrhne zdrojovou MAC adresu jiného zařízení. Leaf může změnu interpretovat jako legitimní přesun MAC a rozšířit ji přes BGP do celé fabric. Výsledkem může být přesměrování provozu určeného původnímu zařízení. Autor článku rozebírá možnosti detekce pomocí sledování MAC moves, BGP route reflektorů a kontroly na přístupové vrstvě.

    vencour | Komentářů: 0
    31.10. 15:11 | Nová verze

    Vývojáři desktopového prostředí Enlightenment (Wikipedie) a souvisejících knihoven Enlightenment Foundation Libraries (EFL) vydali nové verze. Enlightenment byl vydán ve verzi 0.28.0 a Enlightenment Foundation Libraries ve verzi 1.29.

    Ladislav Hagara | Komentářů: 4
    31.10. 13:55 | Zajímavý článek

    Cloudflare zjistil, že některé odpovědi modelu GLM-5.3 obsahovaly části dat z předchozích požadavků jiných zákazníků. Příčinou byla kombinace chybné konfigurace a chyby v inference enginu SGLang. Model podporoval kontextové okno 1 048 576 tokenů, ale GPU KV cache pool měl kapacitu pouze 681 280 tokenů. Při překročení kapacity docházelo k nesprávnému zpracování odmítnutého požadavku. Decode část systému následně pracovala se starými

    … více »
    vencour | Komentářů: 2
    31.10. 13:00 | Zajímavý článek

    Vývojáři Knot Resolver vysvětlují, jak změnili rozhodování o tom, které DNS záznamy ponechat v cache a které odstranit. Článek obsahuje skutečná měření: devět hodin DNS provozu při 2 000 QPS, srovnání cache o velikosti 25 MB a 40 GB a také porovnání s BIND 9, kromě algoritmů obsahuje konkrétní doporučení pro konfiguraci a diagnostiku.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2965 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář

    22. 4. 2013 | Luboš Doležel | Jaderné noviny | 4951×

    Aktuální verze jádra: 3.9-rc5. Citáty týdne: Frederic Weisbecker, Steven Rostedt. ZFS na Linuxu 0.6.1. Post-mortem analýza deadlocku ve VFS.

    Obsah

    Aktuální verze jádra: 3.9-rc5

    link

    Aktuální vývojová verze jádra je 3.9-rc5 vydaná 31. března. Linus k ní řekl: Z řady nevyčnívá nic zvláštního. Aktualizace Exynos DRM, aktualizace ovladače IBM Ram San jsou trochu větší, aktualizace l2tp... Zbytek jsou malé patche rozprostřené napříč jádrem. Většinou jde o ovladače (block, net, media, tty, usb), síťování a nějaké aktualizace systémů souborů (btrfs, nfs). Pak nějaké aktualizace architektur (x86, arc). Postupně se to uklidňuje a k vydání verze 3.9 za pár týdnů se blížíme podle plánu.

    Stabilní aktualizace: verze 3.8.5, 3.4.38 a 3.0.71 vyšly 28. března s obvyklou várkou oprav. 28. března vyšla i verze 3.5.7.9. Na 4. dubna se chysta jiná velká dávka oprav v podobě 3.8.6, 3.4.39 a 3.0.72.

    Citáty týdne: Frederic Weisbecker, Steven Rostedt

    link

    Bylo by pěkné vyhnout se kroku feature-removal.txt (odstranění-funkcí.txt). Když jsem kurzorem vybral tento soubor, tak jsem jednou zaslechl jakési bolestné nářky. Místo otevření tohoto souboru jsem pak okamžitě zavřel celý adresář. Nikdy předtím jsem o tom nikomu neřekl, tohle je poprvé. Také jsem se doslechl, že do tohoto souboru někdo přidal položku, že se má soubor odstranit? Tohle je nějaká černá magie.

    -- Frederic Weisbecker

    
    < systém je v jediném stavu: každý vidí kočka = naživu >
    
    vlož_kočku_do_krabice(kočka);
    
    < systém je ve dvojím stavu: nová volání vidí kočka == mrtvá, ale
      současná volání vidí kočka == naživu >
      
    otevři_krabici();
    
    < systém je opět v jediném stavu : všichni vidí kočka = mrtvá >
    
    pohřeb(kočka);
    

    -- Steven Rostedt vysvětlující RCU

    ZFS na Linuxu 0.6.1

    link

    Jménem projektu ZFS-on-Linux Brian Behlendorf ohlásil dostupnost verze 0.6.1 tohoto systému souborů s původem na Solarisu. To, že je ZoL používáno skutečnými uživateli už více než dva roky, nás přesvědčilo, že je ZoL vhodné pro rozsáhlé nasazení od desktopů po superpočítače. Domovská stránka projektu nabízí binární moduly pro celou řadu distribucí. (Pro postoj tohoto projektu k licenčním problémům čtěte toto FAQ).

    Post-mortem analýza deadlocku ve VFS

    link

    Dave Jones pokračuje ve zkoušení svého Trinity fuzz testeru a daří se mu v jaderném kódu odhalovat zajímavé chyby. Nedávno se mu povedlo odhalit starý bug v implementaci síťových jmenných prostorů.

    Diskuze o chybě začala, když Dave na mailing list linux-kernel zaslal zprávu ukazující deadlock v kódu VFS. Toto hlášení dohnalo Ala Vira k úvahám, jak se instanci Trinity mohlo podařit viset na dvou zámcích (což je situace, která by neměla nikdy nastat), což bylo vidět na výstupu lockdep (klíčové části jsou zvýrazněné):

    Showing all locks held in the system:
        4 locks on stack by trinity-child2/7669:
         #0: blocked:  (sb_writers#4){.+.+.+}, 
             instance: ffff8801292d17d8, at: [<ffffffff811df134>] mnt_want_write+0x24/0x50
         #1: held:     (&type->s_vfs_rename_key){+.+.+.}, 
             instance: ffff8801292d1928, at: [<ffffffff811c6f5e>] lock_rename+0x3e/0x120
         #2: held:     (&type->i_mutex_dir_key#2/1){+.+.+.}, 
             instance: ffff880110b3a858, at: [<ffffffff811c701e>] lock_rename+0xfe/0x120
         #3: blocked:  (&type->i_mutex_dir_key#2/2){+.+.+.}, 
             instance: ffff880110b3a858, at: [<ffffffff811c7034>] lock_rename+0x114/0x120
    

    Al také poznamenal, že výstup ukazuje, že inode adresáře byl v inode cache mapován pomocí dvou různých dentries, protože lockdep ukázal dva zámky i_mutex_dir_key na stejné adrese. Dentry (directory entry; položka adresáře) je datová struktura představující název souboru v jaderné cachi adresářových položek (dcache); krátký přehled o dentries a dcache lze najít v tomto článku. Jak bude všem brzy jasné, nikdy by se nemělo přihodit, že je inode adresáře mapována v dcache dvakrát.

    Některé návrhy se týkaly přidání vhodných ladících výstupů do jaderné funkce lock_rename(), aby bylo možné problém dále analyzovat. Hlavně kvůli držení dvou zámků nad stejnou adresou inodu chtěl Linus vidět názvy souborů tohoto inode a Ala zajímal název systému souborů, kde se tyto inody nacházejí.

    Další spuštění Trinity s dodatečným ladícím výstupem odhalilo, že se tyto zámky objevují u různých položek ve stromu /proc. V ten moment Linus upřesnil, že se dotyčné položky nacházejí jen v /proc/net, ale stejně jako Al byl zmatený z toho, jak se něco takového může dít.

    Zde se sluší vysvětlit některé okolnosti. Bylo nebylo, /proc/net existovalo jen jako jediný adresář. Jenže s vynálezem síťových jmenných prostorů jde nyní o symbolický odkaz do adresáře /proc/self/net; jinými slovy, každý proces teď má svůj vlastní pohled na síťové informace pod /proc specifický pro síťový jmenný prostor.

    S ladícím výstupem se rychle podařilo pochopit souvislosti. Dave si uvědomil, že začal selhání Trinity vídat po povolení síťových jmenných prostorů po nedávné opravě chyby od Erica Biedermana. Al se blíže podíval na některé podadresáře v adresáři /proc/PID/net a odhalil neveselou skutečnost:

    al <at> duke:~/linux/trees/vfs$ ls -lid /proc/{1,2}/net/stat
    4026531842 dr-xr-xr-x 2 root root 0 Mar 21 19:33 /proc/1/net/stat
    4026531842 dr-xr-xr-x 2 root root 0 Mar 21 19:33 /proc/2/net/stat
    

    Toto odhalení vedlo k malému výbuchu:

    NĚMŮŽEME MÍT NĚKOLIK DENTRIES NA STEJNÉM INODE ADRESÁŘE. [...] Ach jo... Jmenné prostory – mělo se zůstat jen u jediného...

    Ti z vás, kteří máte dobrou paměť, nebo jste u nedávného článku na LWN dávali pozor, se možná usmíváte kvůli tomu, že od počátku a mnoho let poté byl jen jediný typ jmenných prostorů – jmenné prostory připojovacích bodů, které implementoval nějaký Al Viro.

    Srandičky stranou, byl to právě Al, kdo odhalil podstatu problému. Výpis adresáře, který můžete vidět výše, ukazuje dvě adresářové položky vedoucí k jedinému inode. Obecně řečeno všechny procesy sdílející jediný síťový jmenný prostor mají své /proc/PID/net implementováno jako pevný odkaz na stejný (virtuální) soubor v /proc.

    Implementace příslušných položek v /proc jako pevné odkazy na stejný inode je při implementaci jmenných prostorů technika používaná na různých místech. Povolování více pevných odkazů na jediný soubor je samozřejmě běžná funkce unixových systémů. Až na jeden případ: Linux, stejně jako ostatní unixové systémy, zakazuje vícero pevných odkazů na adresář. Spolehlivost různého kódu v jádře i mimo něj stojí na tomto předpokladu. Patch v Linuxu 2.6.25 začleněný v počátcích implementace síťových jmenných prostorů tento předpoklad pro adresáře pod /proc/PID/net potají rozbil.

    Jakmile se podařilo najít příčinu problému, museli vývojáři vymyslet vhodnou opravu. V tento moment se muselo k věci přistupovat pragmaticky, protože cílem bylo opravit nejen budoucí jádra, ale i ta minulá. Jinými slovy by idelání opravou byl patch, který by šel aplikovat nejen na současná jádra, ale i na starší stabilní řady. To vedlo Linuse ke spekulacím, zda nepovolit výjimku v jinak přísném pravidlu, že na adresáře nemůže být více pevných odkazů. Protože jsou tyto zámky umisťovány na úrovni inode, proč nezměnit kontrolu v lock_rename() tak, aby se ověřovalo, zda se nepracuje se stejnými inody místo dentries?

    Al ale rychle upozornil, že takto by se sice odstranil tento konkrétní deadlock, ale ostatní problémy by zůstaly nedotčeny. Jaderný kód pracující s těmito zámky závisí na topologickém řazení na bázi hierarchických vztahů mezi položkami v dcache; přítomnost více adresářových položek odkazujících na stejný inode činí toto řazení nespolehlivým.

    Al pak popsal, co by považoval za úplné a řádné řešení: vytvoření souborů /proc/PID/net jako symbolické odkazy na adresáře konkrétních jmenných prostorů v podobě /proc/nents-ID/net, kde netns-ID je identifikátorem daného jmenného prostoru. Alternativou by bylo zachovat stávající stromy /proc/PID/net, akorát by podadresáře byly vytvořeny jako duplicitní podstromy místo odkazování na jediný adresářový podstrom. Al si ale nebyl jistý, zda by toto šlo implementovat jako backportovatelný patch.

    Mezitím přišel Linus s jiným návrhem. proc_get_inode(), jaderná funkce pro alokaci inodů v systému souborů /proc, má tuto podobu:

        struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
        {
            struct inode *inode = iget_locked(sb, de->low_ino);
    
            if (inode && (inode->i_state & I_NEW)) {
    
                ...
                /* Populate fields in newly allocated cache entry pointed
                   to by 'inode' */
                   ...
    
                unlock_new_inode(inode);
            } else
                pde_put(de);
            return inode;
        }
    
    

    Funkce iget_locked() prohledává jadernou inode cache, aby našla inode, jehož číslo odpovídá číslu ve struktuře dentry de. Vrátí buď ukazatel na existující položku, nebo novou neinicializovanou položku v cache v případě, že tam ještě taková není. Funkce proc_get_inode() pak naplní pole nově vytvořené položky v inode cache pomocí údajů z dentry.

    Problém s deadlockem je důsledkem toho, že kvůli mapování více dentries na jediný inode může být vícero zámků umístěno k té samé položce v inode cache. Deadlockům by se mohlo zabránit tím, že by se zabraňovalo umisťování více zámků na položky inode vracené z cache. Jak Linus poznamenal, v případě /proc není skutečně nutné hledat existující položku v cache, neboť soubory v /proc neexistují na žádném fyzickém disku. Místo toho by proc_get_inode() mohlo vždy vytvořit novou položku cache pomocí new_inode_pseudo() a naplnit ji. Protože by vždy docházelo k vytváření nové položky, nebyla by viditelná jiným procesům a nemohlo by tedy docházet ke konfliktům zámků nebo k deadlockům. Jinými slovy by logika v proc_get_inode() mohla být upravena takto:

        struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
        {
            struct inode *inode = new_inode_pseudo(sb);
    
            if (inode) {
                inode->i_ino = de->low_ino;
    
                ...
                /* Populate fields in newly allocated cache entry pointed
                   to by 'inode' */
                ...
    
            } else
               pde_put(de);
            return inode;
        }
    

    Zde je vhodné upozornit na existenci dvou různých schémat alokace pro inody pod /proc: první schéma se obvykle používá pro inody pod adresáři /proc/PID a to druhé ve zbytku /proc. Linusův patch ovlivňuje jen alokace inodů pro položky ve druhé skupině. Z historických důvodů, kdy /proc/net bylo přesunuto do /proc/PID/net, jsou inody pod /proc/PID/net alokovány stejně jako inody mimo /proc/PID a tento patch proto má dopad i na ně.

    V komentáři u následného commitu Linus řekl, že by patch mohl být poladěn tak, aby se nové chování týkalo jen položek adresářů a ne tedy všeho v /proc. V zájmu zachování jednoduchosti to tak ale uděláno nebylo.

    Důsledkem Linusova patche je zabránění vzniku více zámků (a tedy deadlocků) na stejném inodu. Al souhlasil, že tato změna by z hlediska správnosti neměla představovat problém. Na druhou stranu má tato změna za důsledek odstranění předností cachování inodů v /proc mimo /proc/PID. Al se zabýval výkonnostními dopady této změny. Nahodilé testování ukázalo. že přednosti cachování inodů v /proc jsou tak jako tak velmi malé. Dave navíc oznámil, že po aplikaci opravy už běh Trinity deadlockem nekončil.

           

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

    22.4.2013 09:29 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    To s tou kočkou mě fakt dostalo. 8-D
    Bedňa avatar 22.4.2013 10:50 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Je to dobré, ale už som to niekde čítal, by som si tipol že to je od nejakého fylozofa.

    A súbor čo má v sebe napísané, že ho treba zmazať je tiež moc dobré :)
    KERNEL ULTRAS video channel >>>
    Bedňa avatar 22.4.2013 10:54 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Na jaaaa, už to mám, Schrödingerova kočka.
    KERNEL ULTRAS video channel >>>
    vencour avatar 22.4.2013 11:37 vencour | skóre: 57 | blog: Tady je Vencourovo | Praha+západní Čechy
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Cože? Ty neznáš BBT (Velký třesk)? Když už nic jiného? Aneb "kočka žije, jde se jíst" :-D
    Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
    Bedňa avatar 22.4.2013 11:49 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Poznám, tam práve vyriešili teóriu Schrödingerovej kočky :-)
    KERNEL ULTRAS video channel >>>
    22.4.2013 11:34 li737 | skóre: 6
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Moc pekny clanek. Ta kocka me take velice pobavila. :-) mimochodem hodi se k zitrejsimu vydani alfy fedori kocky :-)
    22.4.2013 18:05 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    Kočka je fajn a pobaví. Horší je to s naprosto nekritickou pasáží o ZFS v linuxu. Jakoby s tím nikdo nedělal a netrápil se těžce podprůměrnou rychlostí, dokonce nižší než u btrfs. Přitom čím více dat, tím je požadavek rychlosti jejich zpracování urgentnější.
    Archlinux for your comps, faster running guaranted!
    little.owl avatar 23.4.2013 18:02 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 4. 4. 2013: K čemu vede více pevných odkazů na adresář
    No moment. A kdo tu kocku zabil? Byla to opravdu jen krabice? Tyrani zvirat!
    A former Red Hat freeloader.

    Založit nové vlákno • Nahoru

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