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í
×
    včera 21:55 | IT novinky

    Microsoft představil nové označení počítačů Copilot+. Dle oznámení se jedná se o počítače poskytující funkce umělé inteligence. Vedle CPU a GPU mají také NPU (Neural Processing Unit). Uvnitř představených Copilot+ notebooků běží ARM čipy Qualcomm Snapdragon X Elite nebo X Plus.

    Ladislav Hagara | Komentářů: 0
    včera 17:55 | Zajímavý článek

    Příspěvek na blogu Codean Labs rozebírá zranitelnost CVE-2024-4367 v PDF.js, tj. mj. prohlížeči PDF souborů ve Firefoxu. Při otevření útočníkem připraveného pdf souboru může být spuštěn libovolný kód v JavaScriptu. Vyřešeno ve Firefoxu 126.

    Ladislav Hagara | Komentářů: 1
    včera 12:55 | Nová verze

    Lazygit byl vydán ve verzi 0.42.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.

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

    K open source herní konzole Picopad přibyla (𝕏) vylepšená verze Picopad Pro s větším displejem, lepšími tlačítky a větší baterii. Na YouTube lze zhlédnout přednášku Picopad - open source herní konzole z LinuxDays 2023.

    Ladislav Hagara | Komentářů: 2
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 12
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 3
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (79%)
     (5%)
     (9%)
     (8%)
    Celkem 393 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Jaderné noviny – 15. 4. 2009

    26. 5. 2009 | Jirka Bourek | Jaderné noviny | 3676×

    Aktuální verze jádra: 2.6.30-rc2. Citáty týdne: Linus Torvalds, J.R. Okajima, Alan Cox. Změna základního bodu a začleňování: Jak pracovat s gitem. Řešení problému latence ext3. Popisovače souborů odpojitelné za běhu a revoke().

    Obsah

    Aktuální verze jádra: 2.6.30-rc2

    link

    Současné vývojové jádro je 2.6.30-rc2 vydané 14. dubna. Nová architektura 'microblaze', poněkud pozdní začlenění 'vstupní' vrstvy [input layer], nový ovladač pro virtuální síťování a nějaké aktualizace nahrávání firmwaru. A mn10300 a frv přesunuly své hlavičkové soubory z include/asm do arch. To shrnuje to nejvýznamnější, ale nemělo by to nikoho ovlivnit. Zkrácený changelog je v oznámení, všechny detaily vizte v kompletním changelogu.

    Během minulého týdne nevyšly žádné stabilní aktualizace, žádné se ani nerevidují.

    Citáty týdne: Linus Torvalds, J.R. Okajima, Alan Cox

    link

    Až přijde revoluce a lidé, kteří nepřešli ke gitu, budou posláni do gulagů, uděláme z "-M" výchozí nastavení.

    -- Linus Torvalds

    Byl jsem žádán, abych aufs začlenil do hlavní řady, několikrát a několika lidmi. Dokud bude tvé stanovisko k aufs silné NACK a dokud budeš odmítat všechny souborové systémy sjednocujícího typu, musím se, i když nechci, vzdát a budu jim odpovídat "Aufs byl odmítnut, vzdáváme to."

    -- J.R. Okajima to vzdává

    while(můj_kořenový_adresář_se_neobjevil_a_já_jsem_smutný()) {
        wait_on(&objevení_nového_disku);
    }

    -- Alan Cox rozšiřuje bootovací API

    IBM je velmi známo tím, že pohrdá samohláskami a prakticky odmítá jejich používání v mnemonických instrukcích (když na to bylo poukázáno, vytvořili instrukci "eieio", aby to vynahradili).

    Já jsem ale z Finska. Ve finštině jsou samohlásky 75 % hlásek. Tohle odsamohláskování považuji za stupidní a nepraktické. Bez samohlásek nemůžete od sebe finská slova rozeznat (uznávám, se samohláskami se obvykle nedají vyslovit, takže nikomu kromě Finů nejsou moc platné).

    -- Linus Torvalds (díky Benu Hutchingsovi)

    Změna základního bodu a začleňování: Jak pracovat s gitem

    link

    V typickém vývojovém cyklu Linus Torvalds přetahuje patche z více než 100 stromů do repozitáře hlavní řady. Když se to děje, není neobvyklé, že si stěžuje na to, jak jsou tyto stromy spravovány; většina stížností je na operace změny základního bodu [rebasing] a začleňování [merging]. V nedávné diskuzi v konferenci dri-devel Linus trochu objasnil pravidla správy subsystémového stromu. Jonathan Corbet, autor tohoto článku, se na základě teorie, že možná existuje pár vývojářů, kteří nečtou dri-devel, rozhodl tato pravidla zpřístupnit veřejnosti.

    Operace git "rebase" (změna základního bodu) vezme sadu patchů aplikovaných na jeden strom a přepracuje je tak, aby je bylo možné aplikovat na jiný strom. Pokud vývojář(ka) napsal(a) nějaké patche proti 2.6.29, může použít "git rebase", aby se změnily na patche proti 2.6.30-rc1. S gitem lze změnu základního bodu použít také k editaci historie commitů. Jestliže je potřeba něco opravit v patchi, který byl vytvořen před delší dobou, vývojář může (1) odstranit novější patche ze stromu, (2) udělat potřebné změny, (3) změnit základní bod odstraněných patchů podle opraveného patche. Tuto techniku lze použít k tomu, aby se tiše odstranily zahanbující chyby z historie, zlepšily changelogy patchů, opravily konflikty patchů se stromem někoho jiného atd. Jde o něco, co vývojáři používající git jednoduše čas od času dělají.

    Se změnou základního bodu je ale spojeno několik problémů. První z nich je, že se mění historie commitů. Když se sérii commitů změní základní bod, každý, kdo se starou historií pracoval, má najednou smůlu. Jestliže je změněn základní bod u značně používaného stromu, všichni vývojáři závisející na tomto stromě jsou nuceni se znovu přizpůsobovat nové realitě. Další problém je, že patche se změněným základním bodem jsou změněné patche; jakékoliv testování, kterého se jim dostalo, již nemusí platit. To je důvod, proč Linus hodně bručí na stromy, u nichž byl zjevně změněn základní bod těsně předtím, než přišel požadavek na jejich přetažení. Změny v těchto stromech pravděpodobně před změnou základního bodu fungovaly, ale po ní již nebyly testovány a nemusí fungovat tak dobře.

    Změna základního bodu je nicméně zjevně velmi užitečná technika. Linus vývojářům neříká, že ji nemají používat; ve skutečnosti ji občas podporuje. Klíčové pravidlo, které bylo řečeno, je: Stromu s historií viditelnou jiným stromům základní bod nezměníš. Jestliže vývojář přetáhl strom někoho jiného, u výsledného stromu nelze měnit základní bod, protože to by mohlo poškodit vývojovou historii druhého vývojáře. Podobně jakmile je strom exportován, takže ho mohou používat jiní, nelze mu měnit základní bod.

    Na druhou stranu soukromé historii je možné měnit základní bod dle libosti - a tak by se i mělo dít. Jestliže patch zavádí chybu, je lepší ho opravit než odstraňovat nebo přidávat další, opravující patch; výsledkem je čistší historie, která s menší pravděpodobností způsobí problémy lidem, kteří se snaží hledat úplně jiné chyby dělením půlením [bisect]. Jonathan zjistil, že změna základního bodu je často nutná při přidávání značek (například "Odsouhlaseno kým" [Acked-by]) k patchům, které prošly revizí. Když někdo vytváří sadu patchů k jádru hlavní řady, vytváří celou historii, ne jenom konečný výsledek. Zajistit, aby tato historie byla čistá a čitelná, je v zájmu všech.

    S tím spojené pravidlo je nicméně to, že stromy, které procházejí změnou základního bodu, by neměly být k dispozici světu:

    To znamená: Pokud jste stále ve fázi "git rebase", nepustíte to ven. Jestliže to není hotové, posíláte patche nebo používáte soukromé gitové stromy (jenom jako "náhradu sady patchů"), o kterých na veřejnosti příliš nevykládáte.

    Jinými slovy, stromy, kterým by se mohl měnit základní bod, by měly zůstat soukromé. Také by neměly obsahovat přetažené stromy jiných vývojářů.

    Stojí za to poznamenat, že Linus striktně dodržuje to, co v této oblasti káže. Repozitář hlavní řady akceptuje přibližně 10 000 sad změn každý vývojový cyklus, ale nikdy nemění základní bod. A to je dobře: změna základního bodu hlavní řady by způsobila spoustu problémů v celé vývojové komunitě.

    Začleňování [merge] je další místo, kde se správci subsystémů mohou dostat s náčelníkem Tučňáků do konfliktu. "Začlenění" je v gitu podobné jako v ostatních systémech správy kódu; spojí dvě (nebo více) nezávislé linie vývoje do současné větve. Začlenění v gitu se však liší, protože mohou mít více než dvě vstupní větve; Ingo Molnár se proslavil svým "chobotnicovým začleňováním", které spojuje ohromné množství větví v jediné operaci. V téměř všech případech přidává začlenění do repozitáře speciální commit, který ukazuje, že bylo provedeno začlenění, a které soubory, pokud nějaké, měly konflikty.

    Začleňování probíhá oběma směry. Když Linus přetáhne subsystémový strom do hlavní řady, výsledkem je začlenění. Je ale běžné, že vývojáři začleňují v opačném směru; přetáhnou hlavní řadu (nebo jiný subsystémový strom vyšší úrovně) do větve obsahující místní linii vývoje. Je přirozené chtít vyvíjet kód proti současnému stavu díla; dává to jistotu, že konečný výsledek bude fungovat se změnami někoho jiného a minimalizuje to pravděpodobnost ošklivého začleňovacího konfliktu v pozdější době.

    Nadměrné přetahování hlavní řady (jež dokazují commity začlenění, které vzniknou) nicméně Linuse irituje. Jak to říká on:

    Jestliže ale ve vašem logu uvidím spoustu "Merge branch 'linus'", nepřetáhnu od vás nic, protože váš strom zjevně obsahoval náhodné svinstvo, které tam nemělo co dělat. Také tím ztrácíte testovatelnost, protože všechny vaše testy budou o mém náhodném kódu.

    Jak každý, kdo pracoval se špičkou repozitáře jádra, ví, stav hlavní řady v náhodně vybraném okamžiku může být, ehm, náhodný. Časté přetahování hlavní řady do vývojové větve do ní tedy přidává určité množství náhodnosti; ta příliš nepomáhá někomu, kdo se snaží rozchodit nějakou vlastnost. Také to zvyšuje šanci, že jiný vývojář, který při dělení půlením skončí uprostřed série, narazí na chybu, kterou nehledá. Linus by tedy byl radši, kdyby vývojáři nepřetahovali vyšší stromy:

    A ještě lépe byste můj strom neměli přetahovat VŮBEC, protože nic v mém stromě by nemělo být relevantní k vývojové práci, kterou děláte vy. Někdy musíte (abyste vyřešili nějaký ošklivý problém se závislostmi), ale měla by to být velmi ojedinělá záležitost a měli byste se nad tím hodně zamyslet.

    Skutečný stav nebývá nicméně tak striktní. Občasné začlenění, aby se drželo tempo s tím, co se děje jinde, může dávat smysl. Co Linus navrhuje, je, aby se taková začlenění prováděla ve specifických bodech vydávání. Přetažení špičky vývojového stromu s největší pravděpodobností nedává smysl, ale lze argumentovat pro přetažení 2.6.29 či 2.6.30-rc1. Udělat to znamená založit vývoj na (snad) relativně stabilním bodě, jehož problémy jsou známy.

    Pokušení začlenit hlavní řadu během vývoje může být těžké odolávat; člověk rád ví, jestli je jeho práce alespoň trochu relevantní k současnému stavu kódu. Naštěstí git skutečně snadno umožňuje vytvořit větve k zahození [throwaway branch] a testovat začlenění a integraci na nich. Jakmile je jasné, že věci fungují, testovací větev lze smazat a (rozdělenou [unmerge]) vývojovou větev zaslat do upstreamu.

    Podobné pravidlo platí pro začleňování kódu z downstreamu. Přijímající repozitář by měl být v přiměřeně dobře definovaném a stabilním stavu; vývojář pro tento druh začleňování typicky spravuje větev "pro upstream". A kód z downstreamu by měl být "hotový": měl by být v nějakém bodě vydání, ne v náhodném stavu vývoje.

    Samozřejmě tato pravidla nejsou absolutní:

    Git umožňuje lidem dělat spoustu různých věcí a řešit problémy různými způsoby. Jenom chci, aby běžný způsob práce dodržoval "slušné způsoby", ale jestliže budete muset příležitostně porušit pravidla, abyste vyřešili nějaký podivný problém, do toho, porušte je (a řekněte lidem, proč jste to tentokrát udělali takto).

    Linus si poprvé začal hrát s BitKeeperem v únoru 2002, takže jaderná komunita má nyní za sebou sedm let zkušeností s distribuovanou správou verzí. Pravda ale je, že stále vymýšlíme nejlepší způsob, jak tento konkrétní nástroj využít. Jde o proces, který bude pravděpodobně ještě nějaký čas pokračovat. S tím, jak se jiné projekty přesouvají k využívání nástrojů, jako je git, by jim mohlo stát za to pořádně se podívat na procesy a pravidla, která vyvinula jaderná komunita; mohli by tak zkrátit svoji vlastní dobu učení.

    Řešení problému latence ext3

    link

    Jeden by si mohl myslet, že souborový systém ext3, vzhledem k tomu, že je již několik let standardem na téměř všech nainstalovaných linuxových systémech, bude velmi dobře vyladěn, co se výkonu týče. Nedávné události nicméně ukázaly, že nějaké problémy s výkonností v ext3 zůstávají, obzvláště v situacích, kdy je voláno systémové volání fsync(). Je ohromující, co se může stát, když se k problému přitáhne pozornost; jádro 2.6.30 bude obsahovat opravy, které zdánlivě eliminují mnoho z latencí, které zažívají uživatelé ext3. Tento článek se dívá na změny, které byly provedeny, včetně překvapivé změny výchozího režimu žurnálování, která byla provedena těsně před vydáním 2.6.30-rc1.

    Problém je v krátkosti takový: Souborový systém ext3, když běží v režimu data=ordered, může způsobit dlouhé prodlevy, když nějaký proces zavolá fsync(), aby uložil data na disk. Nejslavnější projev tohoto problému je zatuhnutí systému spojené s Firefoxem, ale týká se i jiných, nejenom Firefoxu. Kdykoliv probíhá dostatečně velké I/O, fsync() může na několik vteřin všechno zastavit. Byla hlášena i zatuhnutí trvající několik minut. Toto chování způsobuje, že od používání fsync() jsou lidé odrazováni a používání Linuxu na desktopu není taková zábava. Zjevně stojí za to to opravit, ale nikdo to několik let neudělal.

    Když se Ted Ts'o na problém podíval, všiml si zjevného problému: Data zaslaná na disk pomocí fsync() jsou vložena na konec fronty I/O plánovače za všechny probíhající požadavky. Pokud procesy v systému zapisují hodně dat, může být fronta poměrně dlouhá, takže fsync() trvá dlouho, než doběhne. A než se tak stane, ostatní části souborového systému se mohou zastavit, čímž se nakonec může zastavit většina systému.

    První oprava byla označit I/O požadavky vygenerované fsync() bitem WRITE_SYNC, tedy udělat z nich synchronní požadavky. I/O plánovač CFQ se snaží dokončit synchronní požadavky (na jejichž dokončení většinou čeká nějaký proces) před asynchronními (na které nikdo nečeká). Čtení jsou normálně považována za synchronní, zápisy ne. Jakmile jsou požadavky spojené s fsync() označeny jako synchronní, jsou schopné přeskočit před běžné I/O. Díky tomu je fsync() mnohem rychlejší za cenu zpomalení procesů intenzivně provádějících I/O. To je všemi zúčastněnými považováno za dobrý obchod. (Pro pobavení si můžete všimnout, že tato změna je koncepčně podobná patchi I/O priority, který zaslal Arjan van de Ven před nějakým časem; přijetí některých nápadů chce čas.)

    Správci blokového subsystému Jensi Axboeovi se tato změna nelíbí s tím, že pravděpodobně způsobí vážné výkonnostní regrese pro některé zátěže. Linus nicméně dal jasně najevo, že patch pravděpodobně bude začleněn, a jestli to CFQ I/O plánovač nezvládne, dojde brzy ke změně výchozího plánovače. Jens by se záležitosti tak jako tak věnoval i nadále, ale tato extra motivace od Linuse tomu neuškodí.

    Problém je, jak se ukazuje, to, že WRITE_SYNC ve skutečnosti dělá dvě věci: Vloží požadavek do synchronní fronty o vyšší prioritě a frontu odpojí. "Připojování" [plugging] je technika, kterou bloková vrstva používá k vysílání požadavků ovladači disku v dávkách [bursts]. Mezi dávkami je fronta připojena, takže se v ní požadavky hromadí. Toto hromadění dává I/O plánovači příležitost sloučit vedle sebe ležící požadavky a vyslat je v nějakém rozumném pořadí. Rozumné využívání připojování významně vylepšuje výkonnost blokové vrstvy.

    Odpojení fronty kvůli synchronnímu požadavku může v některých situacích dávat smysl; jestliže někdo čeká na dokončení operace, je pravděpodobné, že tato operace do fronty nebude přidávat žádné další vedle ležící požadavky, takže nemá smysl dále čekat. fsync() nicméně není tento případ - volání fsync() naopak obvykle vygeneruje celou sérii synchronních požadavků a pravděpodobnost, že tyto požadavky budou ležet blízko sebe, je poměrně vysoká. Odpojení fronty po každém synchronním požadavku tedy výkon spíše zhorší. Poté, co problém identifikoval, zaslal Jens sérii patchů, která ho opravuje. Jeden z nich přidává novou operaci WRITE_SYNC_PLUG, která naplánuje synchronní zápis bez odpojení fronty. To umožňuje operacím jako fsync() vytvořit sérii operací a frontu odpojit na konci najednou.

    Když už byl u toho, opravil Jens pár s tím spojených problémů. Jedním z nich bylo to, že blokový subsystém mohl v některých situacích občas spustit synchronní požadavky za asynchronními. Kód je zde poněkud ošidný, protože může být vhodné nechat projít několik asynchronních požadavků, aby se bránilo jejich kompletnímu vyhladovění. Jens změnil rovnováhu tak, aby se zajistilo, že se synchronní požadavky dostanou ke slovu zavčasu.

    Krom toho plánovač CFQ používá pro synchronní požadavky "předvídající" [anticipatory] logiku; po vykonání jednoho takového požadavku frontu zastaví, aby zjistil, jestli se neobjeví vedle ležící požadavek. Myšlenka za tímto chováním je taková, že hlavička disku by v takovém případě byla ideálně umístěna k tomu, aby bylo možné požadavek uspokojit, takže nejlepšího výkonu se dosáhne tím, že se s ní nepohne hned. Tato logika může dobře fungovat u synchronního čtení, ale nepomáhá, když se jedná o zapisující operace generované fsync(). Proto je zde nový interní příznak, který vypíná předvídání, když se vykonávají operace WRITE_SYNC_PLUG.

    Linusovi se změny líbily:

    Hezké. Udělejme to. Konec konců, právě teď bychom jinak museli ostatní změny vzít zpět [revert] jako regrese a já absolutně zbožňuju fakt, že se konečně někam dostáváme ohledně problému s latencí fsync, která nás trápila tak dlouho.

    Ukazuje se ale, že ještě něco zbývá. Linus si všiml, že zbrzdění je stále pozorovatelné, i když mnohem kratší než dříve, a divil se proč:

    Jedna věc, která mě zaujala, je, že čas fsync se zdá být tak konzistentní na tak široké škále disků. Je zajímavé, že zaznamenáváš zpoždění, která jsou řádově stejná jako u mě, přestože používáš starý SATA disk a já SSD od Intelu.

    Z toho je zjevný závěr, že se stále ještě děje něco dalšího. Linusova hypotéza je, že objem čekajících požadavků na disk je tak velký, že způsobuje zbrzdění, i když se synchronní požadavky dostanou na začátek fronty. Ve výchozím nastavení může požadavek obsahovat až 512 kB dat; poskládejte pár tuctů takových a disku bude nějakou dobu trvat, než se přes ně propracuje. Linux experimentoval s nastavením maximální velikosti (řízeno /sys/block/disk/queue/max_sectors_kb) na 64kB a hlásil, že věci fungovaly mnohem lépe. V době psaní tohoto článku nebyla nicméně výchozí hodnota změněna; Linus naznačil, že by mohlo dávat smysl omezit maximální množství čekajících dat než velikost jednotlivých požadavků. Čeká se na další experimenty.

    Je zde nicméně jedna důležitá změna, která je zapotřebí, aby bylo fsync() na ext3 opravdu rychlé: Souborový systém musí být připojen v režimu data=writeback. Tento režim odstraňuje potřebu zapisování datových bloků, které byly na disku před metadaty; v režimu data=ordered je naopak množství dat, která je potřeba zapsat, garancí toho, že fsync() bude vždy pomalejší. Přepnutí na data=writeback tyto zápisy eliminuje, ale zároveň také vypíná vlastnost, díky které se ext3 zdá být robustnější než ext4. Ted Ts'o tento problém trochu zmírnil přidáním stejných pojistek, které vložil do ext4. V některých situacích (jako když je nový soubor přejmenován nad existující soubor), je vynuceno zapsání dat před metadaty. Výsledkem je, že by se měly omezit ztráty dat vyplývající z pádu systému.

    Vsuvka: data=guarded

    Další alternativou k data=ordered by mohl být režim data=guarded navržený Chrisem Masonem. Tento režim by zpozdil aktualizace velikostí, aby se zabránilo problémům s vyzrazením informací. Jde ale o velmi nový patch, který nebude do 2.6.30 připraven.

    Další potenciální problém s data=writeback je v tom, že v některých situacích může pád zanechat soubor s bloky, do kterých se ještě nezapsalo. Tyto bloky mohou obsahovat stará data někoho jiného, což je potenciální bezpečnostní problém. Bezpečnost je menší problém než dříve z jednoduchého důvodu, že víceuživatelské linuxové systémy jsou v roce 2009 relativně vzácné. Ve světě, kdy je většina počítačů vyhrazena jedinému uživateli, je potenciál vyzrazení informací v případě pádu mizivě malý. Jinými slovy není jisté, jestli bezpečnost navíc poskytnutá data=ordered stojí za dopad na výkon, který je s tím spojen.

    Ted tedy navrhl, že by možná data=writeback mohlo být nastaveno jako výchozí. Tento nápad měl nějaké odpůrce; ne všichni si myslí, že by ext3 v tomto stádiu svého života mělo doznat takto velké změny nastavení. Linus se nicméně těmito argumenty nenechal svést z cesty; začlenil patch, který vytváří konfigurační volbu pro výchozí režim ext3 a nastavil ji na "writeback". To způsobí, že připojování ext3 se tiše přepne do režimu data=writeback s jádry 2.6.30. Linus říká:

    Očekávám, že během pár měsíců bude většina moderních distribucí mít (téměř omylem) novou sadu příčetnějších výchozích hodnot, a každý, kdo svůj stroj udržuje aktuální, si všimne, že funguje plynuleji, aniž by kdy zjistil proč.

    Stojí za to poznamenat, že tato výchozí hodnota nic nezmění, pokud je (1) režim dat specifikován při připojení souborového systému nebo (2) do souborového systému pomocí tune2fs zadrátován jiný režim. Také se neuplatní, pokud ji distributoři při konfigurování svých jader přenastaví zpět na "ordered". Přinejmenším někteří z nich se mohou rozhodnout, že nechtějí tento druh změny tlačit ke svým uživatelům. Na odpověď na tuto otázku si budeme muset několik měsíců počkat.

    Popisovače souborů odpojitelné za běhu a revoke()

    link

    Bylo nebylo, operační systémy se nemusely starat o to, že by se hardware objevoval a mizel v nepředvídatelném okamžiku. U všech periférií, které byly zapojené při bootu, se dalo počítat s tím, že budou zapojeny, až se bude počítač vypínat. Současné systémy takto nefungují; zařízení se objevují a mizí podle toho, jak si uživatel zamane. Různé subsystémy si vyvinuly mechanismy, kterými se vyrovnávají s hardwarem, který z ničeho nic zmizí, tento kód ale bývá specifický pro subsystém a komplexní. Eric Biederman nedávno na tento kód narazil a nelíbilo se mu, co viděl. Tak se rozhodl udělat něco lepšího.

    Ericova série patchů začíná tímto pozorováním:

    Zanedlouho poté, co jsem se dotkl ovladače tun a zajistil, aby bylo bezpečné smazat síťové zařízení, i když je jeho popisovač souboru [file descriptor] stále otevřený, jsem viděl, jak se někdo jiný dotkl kódu a přidal jinou vlastnost a moje opatrná práce vyletěla komínem. Což mě přivedlo na další myšlenku: Toto je přinejmenším totálně komplexní záludný kód, o který by se subsystémy neměly starat.

    Eric také poznamenává, že růst v oblasti PCI zařízení vyměnitelných za chodu bude zvyšovat počet subsystémů a ovladačů, které budou muset být na tuto eventualitu připraveny. Místo šíření kódu specifického pro vyjímatelná zařízení do dalších částí jádra by rád vytvořil jeden centrální, dobře podporovaný mechanismus.

    Problém, na který se Eric konkrétně dívá, je tento: Co se stane s otevřenými popisovači souborů, když zdroj pod nimi zmizí? Bez ohledu na to, jestli je zdroj fyzické zařízení, modul nebo něco úplně jiného, jádro musí udělat správnou věc, když již popisovač neukazuje na něco platného. Ericovy patche vytvářejí novou infrastrukturu, která každému subsystému umožňuje snadno odmítnout přístup k popisovači souboru spolehlivějším a robustnějším způsobem než dříve.

    První problém, který se objeví, je - jako vždy - mmap(). Jestliže je do adresového prostoru procesu namapováno již neexistující zařízení, mohou se stát zajímavé a nepříjemné věci. Eric odpovídá novou funkcí:

    void remap_file_mappings(struct file *file,
                             struct vm_operations_struct *vm_ops);

    Volání remap_file_mappings() najde všechny oblasti virtuální paměti [virtual memory area, VMA] spojené s daným souborem file. Všechny mapované stránky jsou odmapovány, což je znepřístupní procesu, který je mapoval. Operace spojené s VMA budou nahrazeny pomocí vm_ops; tyto operace budou běžně revoked_vm_ops, které jednoduše vrací chybu sběrnice pokaždé, když se proces pokusí přistoupit k některé z dotčených stránek.

    Jádro zjevně také musí blokovat všechny ostatní operace - read(), write(), ioctl() atd. - které lze s popisovačem souboru provést. Způsobem, jak to zařídit, je samozřejmě nahradit strukturu file_operations spojenou se souborem. Zajistí to tato funkce:

    int fops_substitute(struct file *file, const struct file_operations *f_op,
                        struct vm_operations_struct *vm_ops);

    Lze si představit, že tato funkce bude poměrně jednoduchá, něco jako:

    file->f_op = f_op;
    remap_file_mappings(file, vm_ops);

    Popravdě je ale tato záležitost trochu komplikovanější. Pro začátek mohou běžet vlákna se starými souborovými operacemi a některá z nich mohou čekat na události, které - nyní - nemohou nastat. Aby ovladačům v této situaci pomohly se odblokovat, přidávají Ericovy patche do struct file_operations novou položku:

    int (*awaken_all_waiters)(struct file *filp);

    Tato funkce by měla způsobit, že se každé vlákno čekající na daný soubor probudí a všimne si, že se svět změnil.

    Další problematický bod je ten, že nyní, když byly vyměněny souborové operace, nemá ovladač níže možnost poznat, že byly uzavřeny všechny popisovače souboru. To je vyřešeno čekáním na situaci, kdy žádný známý uživatel nepoužívá staré souborové operace, a následným zavoláním release() přímo z fops_substitute(). To vede k záludné otázce, co se stane, pokud se nějaké vlákno nikdy neprobudí a počet uživatelů nikdy neklesne na nulu; v současném patchi se fops_substitute() v takové situaci jednoduše zasekne.

    Nicméně předtím, než se toho začneme obávat, je zde problematičtější záležitost v tom, že jádro nemá ponětí, kolik uživatelů struktury file_operations existuje. Eric tedy musel přidat mechanismus počítání odkazů. Podle nového způsobu musí jakýkoliv jaderný kód ohraničit volání file_operations daného souboru do:

    int fops_read_lock(struct file *file);
    void fops_read_unlock(struct file *file, int revoked);

    Návratová hodnota fops_read_lock() (kterou Eric neměnně nazývá fops_idx) je nenulová, pokud byl přístup k souboru již odmítnut; musí být předána odpovídajícímu volání fops_read_unlock(). Největší část série patchů je prokousání se přes jádro kódu VFS a přidávání zamykání okolo všech přístupů k file_operations. To je spousta malých změn v kódu, které je potřeba udělat na mnoha místech.

    I tak se to vyplatí: Obsluha souborů se zrušeným přístupem v různých ostatních subsystémech může být vytržena a nahrazena novým, obecným kódem. Změny v souborovém systému /proc například ponechávají kód o téměř 400 řádek kratší. Jádro se tedy zmenší a nový kód by se štěstím měl být robustnější a spravovatelnější.

    Tento mechanismus je užitečný v situacích, když zařízení mizí, ale v dohledu je také větší cíl. Dlouho již existuje požadavek na obecné systémové volání revoke(), které by odpojilo všechny otevřené popisovače k danému souboru nebo zařízení. Bylo by možné ho použít například k implementaci nějakého druhu bezpečnostní klávesové zkratky [secure attention key], zabití všech procesů, které mají otevřené popisovače souborů zařízení konzole. revoke() by také bylo užitečné pro nucené odpojování souborových systémů. Je to užitečný nápad s pouze jedním problémem: revoke() je opravdu složité. Nikdo ještě nepřišel s implementací, která vypadá dostatečně kompletně a robustně na to, aby byla vložena do jádra.

    Ericova sada patchů se do tohoto stavu také nedostala. Reprezentuje ale další útok na problém za použití přístupu, který, jak se shoduje většina vývojářů, představuje způsob, jak je potřeba revoke() implementovat. Postupem času by se mohla vyvinout do obecného řešení, které se vývojářům léta vyhýbalo.

           

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

    Fluttershy, yay! avatar 26.5.2009 06:43 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Další alternativou k data=ordered by mohl být režim data=guarded navržený Chrisem Masonem.

    ^_^

    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    26.5.2009 07:38 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše překlep
    že zaznamen8v83 zpoždění
    Autor nebo překladatel měl problém s přepínáním klávesnice ;-)

    A hned v další větě:
    Z toho je zjjvný závěr,
    Další odstavec:
    Tento režim odstraňuje potřebu zapisování datových bloků byly na disk před metadaty
    „Byly“ je tam zřejmě navíc.
    26.5.2009 08:17 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: překlep
    Autor nebo překladatel měl problém s přepínáním klávesnice
    Korektor.
    Z toho je zjjvný závěr,
    Tentokrát autor i korektor, já napsal zejvný ;-)
    „Byly“ je tam zřejmě navíc.
    Robert asi tentokrát chvátal...
    Quando omni flunkus moritati
    26.5.2009 09:57 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: překlep
    Omlouvám se...
    26.5.2009 10:37 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: překlep
    Stanou se i horší věci. Kdo se ke korekturám textu dostane častěji, určitě už při korektuře vyrobil chybu, která v původním textu nebyla...
    26.5.2009 11:07 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: překlep
    Přiznávám, že s JN trochu zápasím. Ten text je dost hutný, takže mám co dělat, abych po celou dobu udržel maximální koncentraci. A když pak objevím nějakou chybku nebo nepřesnost v překladu, tak do toho při opravě pro jistotu rovnou vrazím ještě vlastní překlep :-). Klobouk dolu před Jirkou - já už ani nevím, jak jsem to dělal, když jsem to ještě překládal sám...
    26.5.2009 12:17 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: překlep
    He, abych pravdu řekl, tak já tu koncentraci taky většinou neudržím (což je potom nejvíc vidět na slovosledu)
    Quando omni flunkus moritati
    Fluttershy, yay! avatar 27.5.2009 00:15 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Kontrola pravopisu? ^_^
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    27.5.2009 00:26 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: překlep
    V té hromadě cizích slov, jmen, novotvarů a HTML značek? Automatická kontrola pravopisu (přesněji kontrola překlepů) funguje jedině v případě, kdy dává málo planých poplachů -- tj. většina slov označených za chybná jsou opravdu chyby. Když 90 % podtržených slov jsou správná slova, která jen nejsou ve slovníku příslušného programu, přestane červeným vlnovkám člověk stejně věnovat pozornost...
    Fluttershy, yay! avatar 27.5.2009 01:43 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Mně se osvědčila kontrola pravopisu i u odborných textů: měl jsem to v OpenOffice.org se zapnutou automatickou kontrolou pravopisu a skákal jsem očima mezi podtrženými slovy.
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    27.5.2009 08:09 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: překlep
    Také to tak dělám, ale jak je vidět, tak se nechám snadno ošálit... V záplavě podtržených slov (akorát pro finální kontrolu nepoužívám OOo, nýbrž Konqueror) se leccos ztratí.
    Nicky726 avatar 27.5.2009 11:16 Nicky726 | skóre: 56 | blog: Nicky726
    Rozbalit Rozbalit vše Re: překlep
    To mám radši kontrolu pravopisu "spouštěnou tlačítkem" v okamžiku, kdy to má smysl.
    Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
    Fluttershy, yay! avatar 27.5.2009 15:47 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Takovou tu, která nabízí v dialogu opravy? Fuj!
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    Nicky726 avatar 27.5.2009 17:32 Nicky726 | skóre: 56 | blog: Nicky726
    Rozbalit Rozbalit vše Re: překlep
    Nevím jak OOo -- to jsem k tvorbě něčeho nepoužil už hodně dlouho -- ale v KWrite je to Nástroje -> Kontrola pravopisu. Jinak opravy nabízí, a pokud se na to díváme demokraticky, tak se většinou i trefí. Zas to není problém přepsat na něco, co tam zrovna není.
    Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
    Fluttershy, yay! avatar 27.5.2009 17:54 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Narážím na to, že se snaží opravit i slova, která jsou správně, ale nejsou ve slovníku... člověk to pak odklikává a může něco přehlédnout.
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    Nicky726 avatar 27.5.2009 18:03 Nicky726 | skóre: 56 | blog: Nicky726
    Rozbalit Rozbalit vše Re: překlep
    Problém se slovníkem je vždycky. Přehlédnutí hrozí vždy, ať už bude člověk odklikávat dialog nebo hledat vlnovky. Mně přijde při delším textu lepší odklikávat dialog, protože prochází jeden výskyt za druhým. U textového pole v komentáři se mi zas víc líbí vlnovky, protože dávají okamžitou reflexi při samotném psaní.
    Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
    28.5.2009 13:13 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: překlep
    Přeskočit očima správně napsané podtržené slovo je mnohem rychlejší, než vybírat nějaké tlačítko (Přeskočit? Ignorovat? Přidat do slovníku? Tento výskyt nebo všechny?) a klikat na něj.
    Fluttershy, yay! avatar 28.5.2009 16:34 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Spíš je problém, když je těch korektních neznámých slov hodně a člověk valí Ignorovat, Ignorovat, Ignorovat,... Pak se snadno něco přehlédne.
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    28.5.2009 18:37 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: překlep
    Od čeho existují uživatelské slovníky?
    Fluttershy, yay! avatar 28.5.2009 18:42 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: překlep
    Pokrýt tolik slov?
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    28.5.2009 20:06 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: překlep
    Proč ne? Pořád lepší, než při každé aktualizaci překladu je prohlížet znova. V opačném případě mi to přijde jako sebetrýznění a hrozí, že se dostaví překlepová slepota.
    29.5.2009 11:34 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: překlep
    Když se to slovo, které není ve slovníku, vyskytne ve vašem textu jednou za 2 roky, je zbytečné jej přidávat do uživatelského slovníku. Navíc tím přidáváním ještě roste náročnost korektury textu – u neznámých slov už se nerozhodujete jenom o tom, zda je to slovo správně či špatně (a máte jej opravit nebo „chybu“ ignorovat), ale pokud je správně, musíte se ještě rozhodovat, zda jej máte nebo nemáte zařadit do slovníku. Zařadit do slovníku každé správné slovo také není řešení, protože čím víc slov ve slovníku máte, tím nižší je účinnost spellcheckeru při odhalování překlepů – zvyšuje se pravděpodobnost, že chybně napsané slovo se trefí do nějakého málo používaného slova, které je ve slovníku.
    30.5.2009 15:47 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: překlep

    Uživatelský slovník nemusí být jenom jeden. Můžete mít slovník pro každou aplikaci nebo obor nebo stupeň odbornosti zvlášť.

    Chápu, že není dobré kdejaký jednoúčelový patvar přidat do slovníku. Ale pokud vám standardní slovník vyhodí 50 neznámých slov, z čehož jsou skutečné překlepy jen 3, tak je škoda nevyužít nástrojů, které máme. Až budete kontrolovat příští verzi, tak už vás těch 47 novotvarů obtěžovat nebude.

    27.5.2009 11:11 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: překlep

    Já na gettextové překlady používám něco takového:

    msgexec -i $< sed 'a\' | \
            aspell --lang=cs --encoding=utf-8 list | \
            aspell --lang=en --encoding=utf-8 list | \
            sort -u >badtranslationlist
    

    Myšlenka je vytáhnout z kódu obsahový text (ve vašem případě to budou textové uzly a hodnoty atributů alt a title; lze použít parametr aspellu --mode=html), který zkontrolujeme proti českému slovníku a zbytek proti anglickému. Výsledek setřepeme do seřazeného seznamu.

    Takový seznam si pak pozorně přečteme a chybná slova v původním textu opravíme. Ustálené novotvary můžeme připadat do vlastního slovníku a ten pak použít při další kontrole. Tento postup opakujeme, dokud soubor badtranslationlist obsahuje slova, která se nám nelíbí.

    26.5.2009 08:08 Standa Kříž | skóre: 8 | Karlovy Vary
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009

    Když se tak hromadně opravuje, tak bych přidal zajímavé slovo "zaznamen8v83".

    Jinak super seriál, díky za překlady. Dnešní citát o samohláskách mě opravdu dostal.

     

    26.5.2009 08:08 Standa Kříž | skóre: 8 | Karlovy Vary
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009

    Tak opravu beru zpět (už tu je), poděkování ne :)

    26.5.2009 22:05 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Zajímavé je, že u ext3 jsem na ten problém s fsync() nikdy nenarazil, zato s ním (nebo něčím, co se projevuje velmi podobně) už nějakou dobu válčím u XFS. Dokonce jsem už rezignoval a na velké filesystémy (stovky GB), na kterých hodlám mít image disků virtuálních strojů pro VMware, raději používám JFS.
    27.5.2009 08:11 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Chápu-li to správně, tak "ten problém s fsync()" se začne projevovat až teď, tj. po začlenění příslušných patchů, které nastaví výchozí chování jako u ext4.
    27.5.2009 11:32 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009

    Řekl bych, že ten problém se projevuje už nyní. Jakmile máte velkou diskovou cache, plnou nezapsaných dat a pak zavoláte fsync, tak data synchronizovaného souboru se umístí na konec fronty, ale de facto se vynutí vypláchnutí celé cache. A to je záležitost, která s dnešními obludně velkými paměťmi (a tedy i cachí) trvá znatelně dlouho.

    Když jsem měl v počítači 32 MB RAM, tak disková cache zabírala několik megabajtů, disk byl schopen sekvenčního zápisu kolem 11 MB/s, takže (f)sync trval teoreticky nejdéle sekundu (u rozkouskovaného zápisu to mohlo být tak 5 sekund). To vzhledem k tehdejší rychlosti procesorů a častému swapování jste ani nepostřehl.

    Dneska mám disk, který sekvenčně dá 50 MB/s, a v diskové cache třeba právě teď mám 153 MB. To už představuje teoretické minimální 3 sekundy. Tedy trojnásobné zhoršení.

    Kdybych měl moderní stroj, tak mi disk dá 100 MB/s, ale pokud jej taky adekvátně zatížím (nějaké to desktopové prostředí, Firefox, Eclipse, Evolution, …), tak disková cache bude zabírat třeba gigabajt a vylití bude trvat alespoň 10 sekund.

    27.5.2009 11:39 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Abych se opravil, tak záleží, jestli v cachi máte data na čtení nebo na zápis. Takže je pravda, že běžný uživatel tam toho k zápisu moc mít nebude. Pokud ale stříháte video nebo sbíráte telefonní odposlechy, tak to bude situace docela jiná.
    27.5.2009 12:23 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Dneska mám disk, který sekvenčně dá 50 MB/s, a v diskové cache třeba právě teď mám 153 MB. To už představuje teoretické minimální 3 sekundy. Tedy trojnásobné zhoršení.

    Kdyby šlo o tři sekundy, tak to neřeším. Problém, o kterém jsem se zmiňoval u XFS, se projevuje tak, že při 100 MB nezapsaných dat trvá provedení příkazu sync 30-60 sekund. Podobně třeba po vypnutí VMware virtuálního stroje následovala při troše smůly desítky sekund trvající prodleva, během které jeho UI nereagovalo a stejně tak všechno ostatní, co se snažilo přistupovat k disku (předpokládám, že VMware volá po vypnutí virtuálního stroje fsync() na image virtuálního disku). Mountováním s nobarrier se to zlepšilo, ale jen zhruba na polovinu, řešením byl teprve přechod na JFS.

    27.5.2009 15:08 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009

    To, co popisuji já, je problém blokové vrstvy. Vy jste měl spíš problém se souborovým systémem. Já XFS vůbec neznám, takže těžko můžu radit.

    Tak mně napadá, jestli položka cached, kterou vypisuje free, je jen bloková cache nebo obsahuje i paměť alokovanou pro souborové systémy?

    Kdyby to byla jen bloková cache (jak si myslím), tak co je v ní, už dávno prošlo (V)FS, takže její vylití by mělo být omezeno jen výkonností plánovače blokového I/O. Takže pokud ta cache neobsahuje hromadu drobných synchronních požadavků, které by mohly ucpat sběrnici z řadiče do disku režií ATA protokolu a donutit disk k neefektivnímu seekování, tak by měl jet disk na plno a cache by se měla vyprázdnit za pár sekund.

    Tyhle potíže pozoruji, když mám CD-RW i pevný disk na stejném IDE kanálu, a cdrecord intentizvně komunikuje s CD mechanikou (třeba při záhájení nebo dokončení vypalování nebo při rychlém mazání TOC). Pak se nemám jak dostat k disku.

    27.5.2009 16:28 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Tak mně napadá, jestli položka cached, kterou vypisuje free, je jen bloková cache nebo obsahuje i paměť alokovanou pro souborové systémy?

    Tohle číslo je z tohoto pohledu celkem nezajímavé, protože to je veškerá disková cache, z níž většinu obvykle většinu tvoří data, která jsou načtena do cache, ale na disku jsou aktuální, takže je není potřeba zapisovat. Pro to, o čem se bavíme, je směrodatnější spíše hodnota Dirty v /proc/meminfo.

    Tyhle potíže pozoruji, když mám CD-RW i pevný disk na stejném IDE kanálu, a cdrecord intentizvně komunikuje s CD mechanikou (třeba při záhájení nebo dokončení vypalování nebo při rychlém mazání TOC). Pak se nemám jak dostat k disku.

    Tomu bych se samozřejmě nedivil, ale tohle není ten případ. Ty problémy jsem měl na počítači, kde disk i CD-RW mechanika byly na SATA řadiči (navíc na PCI-E sběrnici) a většinou se CD-RW mechanika vůbec nepoužívala. A nešlo jen o jeden počítač, u některých šlo dokonce o SCSI disk. Společným znakem byl 64-bitový procesor (tím ovšem nechci naznačovat, že na 32-bitových se to dít nemůže) a mám pocit, že s vícejádrovými procesory to bylo trochu výraznější (ale to nemám podloženo měřením).

    13.12.2021 10:13 geebranz
    Rozbalit Rozbalit vše Re: Jaderné noviny – 15. 4. 2009
    Virtual assistance

    storageshedsportland.com

    Založit nové vláknoNahoru

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