Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
V minulém zápisku na toto téma jsem si postěžoval na defaultní nastavení desktopových jader, které mělo za příčinu efekt známý jako „cukající se kurzor myši při sebemenším nátlaku na disk“. To je léčitelné překladem vlastního jádra s rozumným nastavením. (Mám experimentálně ověřeno, že tento symptom přetrvává a proto distro jádrům stále nevěřím.)
No ale aby toho nebylo málo, symptomy se vrátily, a to na všech strojích, které poslední dobou prodělaly upgrade jádra. Letmo jsem si vzpomněl na zprávy o jakémsi low_latency patchi, který by měl ty symptomy eliminovat. Říkal jsem si tehdy, proč další hack, když řešení je prosté a plně v rámci současné výbavy, nicméně to jsem netušil že tento patch spíše situaci zhoršuje.
A co je ještě strašnější, že tento režim je zapnut defaultně. Takže léčba křápojádra pokračuje a sice příkazem
for i in /sys/block/*/queue/iosched/low_latency; do echo 0 >$i; done
někde v bootovací sekvenci.
Nějak nechápu, proč se tohle děje? Z mé perspektivy fungovalo všechno dobře, než to soudruzi začali opravovat. Má někdo opačnou zkušenost?
Tiskni
Sdílej:
Tohle potvrzuju.
Já jedu na Archlinuxu rel. krátkou dobu, takže ani nevím, co bylo v době jádra 2.6.30.
Ono je to vidět krásně i v htopu, při použití BFS a přehrávání náročného 1080p videa mám obě jádra vytížená na 100% kdežto při použití vanilla kernelu < 2.6.32 mám jádra vytížená jen okolo 60% (fluktuuje to i výš, ale tak nějak se to střídá a průměr bude okolo těch 60%).
-nosound -benchmark -vo null
. Pokud je vzorek moc dlouhý, tak ještě -endpos a číslo v sekundách. Ještě bývá dobré fixnout frekvenci.
Distribuční jádra v Arch Linuxu např. mají zapnutý forced preempt a vypnutý group cpu scheduler,Tak to nevím od kdy, ale před půl rokem to tak nebylo.
Pravda CONFIG_HZ je nastaven na 300 Hz, ale to je zaprvé na vícejádrovém systému lepší hodnota než 1000 Hz a za druhé je to stejně tickless (CONFIG_NO_HZ) kernelPokud to náhodou nevíš, tickless kernel se týká jenom situace, kdy nic neběží. Vzhledem k tomu, že se bavíme o výkonností při zatížení, tak to asi nebude ten případ.
Jinak viz první poznámka - na vícejádrovém systému už nadělá 1000 Hz víc škody než užitku.Zajímavé, proč?
důkaz od kotyze je tam i přímo v diskuziHmm, důkaz místo slibů? Tak to musí být ještě v něčem dalším (možná v tom hz? nebo preempt rcu?), protože zrovna na -arch jádru to křápuje téměř všude kde jsem byl.
Zajímavé, proč?Protože časovač funguje per-core. Tudíž se dá říct, že pokud má člověk dvoujádro a časovač 300Hz, je to efektivně jako by měl jedno jádro a časovač 600Hz. U dvoujádra tedy o 1000Hz ještě lze uvažovat (i když si nemyslím, že je to potřeba), ale u čtyřjádra už je to IMHO naprosto přehnané (nevýhody - tedy snížená propustnost při vyšších Hz - už převýší výhody).
Hmm, důkaz místo slibů? Tak to musí být ještě v něčem dalším (možná v tom hz? nebo preempt rcu?), protože zrovna na -arch jádru to křápuje téměř všude kde jsem byl.Je nutné si uvědomit, že to tvé "křápochování" má dvě složky - zaprvé špatně fungující plánovač CPU (což se díky BFS změnilo a už i ve vanilla jádře 2.6.32 je CFS upraveno tak, aby se chovalo lépe), což se týkalo všech jader bez ohledu na nastavení preempce a časovače (to samozřejmě dosti podstatně pomáhalo, ale jen v rámci určitých mezí). A pak "křápochování" když probíhá nějaké velké IO (kopírování souborů, etc.), na což sice má lepší plánovač CPU také vliv, ale ne tak markantní - pořád prakticky nikdo s určitostí neví, co to způsobuje a jak se toho problému zcela zbavit. Může to mít souvislost s určitým hardwarem (třeba špatně fungující NCQ u disku), ale spíš to bude souhra problémů (NCQ, plánovač IO, plánovač CPU, práce s pamětí a diskovou cache, atp.). Btw. údajně se tohle "křápochování" ještě markantněji projevuje na 64-bit Linuxu (ale nevím, s tím nemám moc zkušeností, jen jsem na to někde narazil při mém neúspěšném hledání řešení). Tohodle problému se zcela nezbavíš ani s tvým nastavením kernelu, pouze se ten problém více skryje (zkoušel jsem to).
Tudíž se dá říct, že pokud má člověk dvoujádro a časovač 300Hz, je to efektivně jako by měl jedno jádro a časovač 600Hz.Takže každé core má vlastní časovač, kterej je mimo fázi s ostatníma a kterej generuje interrupty pro všechny core? :)
Je nutné si uvědomit, že to tvé "křápochování" má dvě složkyPo tom, co zavedli low_latency tak už tři složky. Ale díky za vysvětlení. Používám pouze 64 bit systémy a je fakt, že distribuční 2.6.32 jsem ještě v ruce neměl. A pokud něco vydatně pomáhá, nebo problém zakreje tak to stejně radši použiju, než abych jen seděl na zadku a stěžoval si.
Takže každé core má vlastní časovač, kterej je mimo fázi s ostatníma a kterej generuje interrupty pro všechny core? :)Nevím jak to přesně funguje (zas tak do toho nevidím), ale jsem si jistý, že mimo fázi není
Po tom, co zavedli low_latency tak už tři složky. Ale díky za vysvětlení. Používám pouze 64 bit systémy a je fakt, že distribuční 2.6.32 jsem ještě v ruce neměl.Nikoliv 3 složky, stále jen 2 složky (vlastně teď už jen 1 složka, protože ten plánovač CPU už považuji za vyřešený - BFS je sice stále v mnohém lepší než CFS, chování CFS je však teď už obstojné). To tvé low_latency je právě pokus o odstranění jedné z příčin toho "křápochování" při velkém IO (je to pouze úprava chování IO scheduleru cfq, nic jiného). Zjevně to ale není moc povedený pokus (respektive podle mailing-listu to někomu opravdu pomáhá, ale jiným to naopak situaci zhoršuje). Btw. jestli používáš jen 64-bit systémy, pak si možná důkazem toho, že u 64-bitových systémů se to "křápochování" při velkém IO projevuje markantněji než u 32-bit systémů (jak jsem se někde dočetl, ale neověřoval jsem to).
_efektivně_ by se co do latencí 2 jádra s časovačem 300Hz měly rovnat 1 jádru s časovačem 600HzNějaký odkaz k tomu?
BFS je sice stále v mnohém lepší než CFS, chování CFS je však teď už obstojnéHlavně, že linus je proti pluggable plánovačům, takže si na každej "test" musíme počkat jednu verzi jádra. :(
To tvé low_latency je právě pokus o odstranění jedné z příčin toho "křápochování" při velkém IO (je to pouze úprava chování IO scheduleru cfq, nic jiného).No a jak píšu v zápisku, nechápu proč to dělají nějakým dalším patchem, kterej je navíc defaultně zaplej, místo toho aby pořádně zjistili příčinu a opravili to *v rámci* současného kódu.
Hlavně, že linus je proti pluggable plánovačům,Ano, ...
takže si na každej "test" musíme počkat jednu verzi jádra. :(... ale to z toho přece nevyplývá. Testovat scheduler můžeš kdykoliv. Aplikovat na něj patch, zkompilovat, rebootnout. Jestli fakt máte někdo spolehlivý test, ve kterém se BFS chová výrazně lépe než CFS, tak o tom dejte vědět na LKML (CC alespoň na Ingo Molnar, Peter Zijlstra, Mike Galbraith).
perf sched record
; vedle nechat běžet test; CTRL+C zastavit perf; prohlížení výsledků perf sched latency
pro statistické shrnutí, nebo perf sched map
či perf sched trace
pro detaily).
Testovat scheduler můžeš kdykoliv. Aplikovat na něj patch, zkompilovat, rebootnout.Jasně že to jde, ale spousta lidí dá přednost "echo bfs >/proc/scheduler", než nějakému šaškování s překladem jádra.
Jestli fakt máte někdo spolehlivý test, ve kterém se BFS chová výrazně lépe než CFS, tak o tom dejte vědět na LKML (CC alespoň na Ingo Molnar, Peter Zijlstra, Mike Galbraith).Pokud bych to mohl přepínat výše uvedeným způsobem tak bych si to mohl zkontrolovat, ale pokud kvůli každému testu budu muset rebootovat, tak na to seru, a stejně to pravděpodobně udělá většina jindy i akčních lidí.
Tudíž se dá říct, že pokud má člověk dvoujádro a časovač 300Hz, je to efektivně jako by měl jedno jádro a časovač 600Hz.Tohle tvrzení mi přijde poměrně divné... pokud běží jenom jedna úloha, tak je přerušována s frekvencí 300Hz. Když běží dvě a víc, tak je každá přerušována s frekvencí 300Hz - kde se bere těch 600Hz? (Pokud to nicméně myslíš tak, že je zbytečné úlohu přerušovat tak často kvůli interaktivitě, když stejně většinou má jedno jádro jenom pro sebe, tak to pak OK.)
(Pokud to nicméně myslíš tak, že je zbytečné úlohu přerušovat tak často kvůli interaktivitě, když stejně většinou má jedno jádro jenom pro sebe, tak to pak OK.)Přesně tak, jak píšu výše jde prostě o efektivní vliv frekvencí časovače a počtu jader na latence (kde by ten vztah "frekvence časovače * počet jader" měl podle toho co jsem se dočetl a i podle mých osobních zkušeností platit).
např. top (tj. jeho načtení do paměti) je operace na několik minut.Coze?!
Ačkoliv pánové tvrdí, že to CPU schedulerem není, tak si myslím, že je. Jinak si nedovedu vysvětlit cukání myši.Nejlepší by samozřejmě bylo to změřit pomocí latencytop
find
a to je pak porod...) ale nikdy jsem to moc neřešil. Zajímalo by mě, jestli někdo nenašel podrobnější popis situace, jak by se měla jádra vyladit pro desktop apod.
low_latency
vlastně dělá. Že to v 2.6.32 přineslo nečekané problémy, je známo. Diskutovalo se to v dlouhém threadu na LKML. Možná to bude v 2.6.33 lepší, můžeš to vyzkoušet. Každopádně tady ten problém nevyřešíš, to raději na LKML.
low_latency
povoleno. Pustil jsem současně ionice -n 1 find /
, rozbalení zdrojáků openjdk (taky s ionice -n 1) a zypper ref
- s myší to nic neudělalo.
zypper up
.