Fajn, takze ... pocitam ze se stejne chodis ptat, jak svoje auto pomoci rozbrusovacky a svarecky predelat na formuli?
Jinak kernel ma scheduleru nekolik (by default) a muzes si vybrat kterej pouzijes. Kazdej ma svy pro a proti, a lidi jako ty by si rozhodne jinej nez defaultni vybirat nemeli, protoze pak se prozmenu budou ptat, proc jim spousta veci prestala fungovat.
Uvedom si laskave, ze tohle funguje PRESNE stejne jako kdyz nekdo odreze flexou "prebytecny casti motoru", jako treba ... vejfuk, a dostane z toho nejakou tu kW navic ... ovsem ... se spotrebou 3x vetsi a emisema 1000x vetsima.
Takze bud vis co delas a pak se nepotrebujes ptat jak to udelat, nebo to nevis, a pak se radsi neptej.
"Pokud se musíš ptát, nikdy se to nedozvíš. Pokud víš, stačí se jen zeptat."
- Stop (nejspíš pro speciální případ vypnutí jádra) http://lxr.free-electrons.com/source/kernel/sched/stop_task.c#L112
- Earliest Deadline First http://lxr.free-electrons.com/source/kernel/sched/deadline.c#L1775
- Realtime plánovač (s dvěma podtřídama: RoundRobin a FIFO) http://lxr.free-electrons.com/source/kernel/sched/rt.c#L2263
- Completely Fair plánovač http://lxr.free-electrons.com/source/kernel/sched/fair.c#L8408 (nejspíš bude ale brzo nahrazen nějakým forkem s lepšími výsledky)
- Idle plánovač http://lxr.free-electrons.com/source/kernel/sched/idle_task.c#L84 "virtuální" pro idle vlákno (to co běží, když nic jinýho neběží, v závislosti na architektuře to je while(1){}, HALT instrukce nebo volání uspání)
+ nárazník, co testuje zda nedošlo k plánování uvnitř idle vlákna (?)
Odkazy jsou na spojový seznam, tak jak se postupně v kernelu úloha matchuje na daný plánovací algoritmus.
potom je ale clanok zle napisany. mam doma solarnu elektraren a na amaterskom portali o elektrarnach vydaju clanok, ze je novy firmware pre solarne elektrarne, ktory zvysi ucinnost. nikde ani slovo o tom, ze je to len na isty typ elektrarni, ze ma novy firmware nevyhody. niekto sa opyta ako si ten firmware nahra do svojej elektrarne. to je podla mna analogia tejto situacie.
zpravicka je v pohode, jen ji musis umet cist, jde o lowlevel zalezitost, kdyz budes cist o tom ze vedci prisli na to jak aplikovat fotoclanek na igelit, taky si to hned nebudes chtit doma aplikovat na pytlik od rohliku :) jinak tvuj priklad s firmware pokulhava na tom, ze zde nebyl zverejnen celek (jadro) ale rozdilove soubory oproti source, tedy totozne jako by jsi mel patch na zdrojaky fw solarni elektrarny ve zpravicce ze vedci prisli na to jak zlepsit ucinost a krome presentace sveho zjisteni dali vyzkumnikum patche, taky by to nebylo zamerene primarne na end user, ale na vyzkumniky :)
tvuj dotaz je principem podobny jako "jak si vyrobim v garazi jadernou elektrarnu? ps: rozdelat ohen v krbu uz umim" ;)
jen zhruba... nainstalujes si vyvojove balicky pro kompilaci jadra, stahnes si zdrojak jadra, stahnes si patche pro jadro, aplikujes patche na jadro, zkonfigurujes jadro, zkompilujes jadro, nainstalujes jadro...
Musí to být konkrétně vanila 4.1, jako vidím v tom patchi, nebo mohu aplikovat patch na zdroják kernelu, co bych si stáhl z repozitářů? Pokud potřebuji toto konkrétní jádro vanila 4.1, jak stáhnu jeho zdroják Koukal jsem na kernel.org a nevidím ho tam (vidím tam 4.1.21:
https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.1.21.tar.xz https://cdn.kernel.org/pub/linux/kernel/v4.x/patch-4.1.21.xz
https://cdn.kernel.org/pub/linux/kernel/v4.x/incr/patch-4.1.20-21.xz
To všechno musím stáhnout, stáhnout zdroják z githubu toho patche a zkusit zkompilovat a nainstalovat?
Co grafické karty a další věci, bude to fungovat?
Patche sú len zmeny oproti predchádzajúcej verzii
Musíte stiahnuť celé zdrojové kódy napr. z
https://www.kernel.org/pub/linux/kernel/v4.x/
A tam je tu súbor napr.
linux-4.1.21.tar.gz zo 6.4.2016 10:23 oveľkosti 120MiB.
tak at zkousi a neco se uci, studijniho materialu o nastaveni a kompilaci kernelu, pripadne o aplikovani patchu se po webu vali mraky, staci se zeptat Mr. Googla
primer se stavbou jaderne elektrarny v garazi byl docela trefny, nikoho rozumneho by nenapadlo jit na forum jadernych fyziku a prudit tam s otazkami, jaky plech ma pouzit na palivove tyce...
Pokud nemáš doma nějaký výkonný server s procesory v NUMA konfiguraci atp., ty patche ti velmi pravděpodobně nijak nepomůžou. Ubuntu má postup pro sestavení balíčků s vlastním kernelem spoustu návodů, třeba tohle https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Nutné prerekvizity:
- Stroj s desítkami výpočetních jader, uspořádaných do několika úrovní sousedských spojení (~ NUMA s několika paticemi s vícejádrovými čipy)
- Jediná náročná úloha (třeba databázový server) s mnoha vlákny
- Zdrojáky Ubuntu kernelu (nejspíš vanilla + balík patchů)
- Schopnost používat git a/nebo schopnost ruční úpravy mezi paralelními vývojovými větvemi
Výsledky:
- Po roce (a víc) učení zjistíš, že ten proof of concept nefunguje v jiné konfiguraci, protože to autoři udělali na míru jedinému stroji a jediné aplikaci a plánovač se pro jiné situace (například core2duo) chová hůř než CFS
- CFS již neexistuje v předchozí podobě a není nadále kompatibilní s tvojí vývojovou větví
- Rok (a víc) znalostí jaderného plánovače, programování v lowlevel C a znalost verzování projektu.