# [kernel] IO Schedulers

## msch

ktos mi moze powiedziec cos o tych 3 schedulerach? jakies testy? jak wydajnosc? ktorego uzywacie?

----------

## Yatmai

Ostatnio przeszedłem z Anticipatory na CFQ. W prawdzie dużo czasu nie minęło, ale szczególnej rożnicy nie zauważyłem.... Choć jakoś dziwnie skróciły mi się troszeczkę czasy kompilacji  :Smile: 

```
art@zeratul ~ $ genlop -t kdelibs

 * kde-base/kdelibs

     Tue Mar 28 03:18:37 2006 >>> kde-base/kdelibs-3.5.1-r1

       merge time: 1 hour, 22 minutes and 54 seconds.

     Wed Mar 29 21:49:59 2006 >>> kde-base/kdelibs-3.5.2

       merge time: 1 hour, 49 minutes and 24 seconds.

     Mon Apr 17 13:09:23 2006 >>> kde-base/kdelibs-3.5.2-r2

       merge time: 1 hour, 36 minutes and 20 seconds.

     Fri Apr 28 23:58:37 2006 >>> kde-base/kdelibs-3.5.2-r4

       merge time: 1 hour, 50 minutes and 30 seconds.

     Sun May 14 00:24:08 2006 >>> kde-base/kdelibs-3.5.2-r5

       merge time: 1 hour, 14 minutes and 52 seconds.

art@zeratul ~ $   
```

Nie wiem czy czasem nie jest to poprostu kwestia lepiej przygotowanej wersji pakietu, ale jak patrzyłem na 10 ostatnio kompilowanych, to wszystkie 10 ma krótszy czas na CFQ niż Anticipatory  :Wink: 

----------

## Poe

juz od dluzszego czasu uzywam cfq, w sumie najlepiej mi się pracuje na nim. 

hehe, nie bylem pewien czy to na pewno cfq, wiec obejrzalem sobie config gruba bo sobie w komentarzach zawsze napisze co mam w kernelu (bo czasami kompiluje kilka wersji tego samego sourcesa tylko z roznymi opcjami i fjuczersami) i mam jeszcze wpisy z 2.6.12-rc2 ze schedulerami staircasea 10.2 (a zaczynalem chyba od 7.2), zaphoda, SPA i Genetic Nickscheda...... ale odlegle czasy :] aktualnie bede testowal staircasea 15... zobaczymy co z tego bedzie bo staircase bardzo w kratke dzialal na moim kompie. jedna wersja ladnie, plynnie, a na następnej juz bardzo cieło, skakało i potrzebny byl powrot do poprzedniej wersji.

----------

## nbvcxz

 *msch wrote:*   

> ktos mi moze powiedziec cos o tych 3 schedulerach? jakies testy? jak wydajnosc? ktorego uzywacie?

 

no to zacznijmy od pytań:

do czego używasz komputera (np. serwer czy desktop) ?

jaki masz kernel i jakie systemy plików?

----------

## Yatmai

Desktop/Gentoo-sources/ReiserFS  :Razz:  Generalnie też bym się chętnie dowiedział co i jak, bo z opisu CFQ mi pasował najbardziej (bo dzieli równo zasoby) ale zawsze mogę się mylić  :Very Happy: 

----------

## tboloo

Najlepiej to chyba uruchomić system z opcją elevator={cfq|deadline|anticipatory} w lilo/grub i samemu zobaczyć co komu pasuje najbardziej. Mi na przykład przy cfg dysk strasznie hałasował ...

----------

## RushPL

Jak sie sprawdza deadline ? Dzisiaj go wlaczylem, ale zadnej roznicy miedzy CFQ na razie nie widze.  :Razz: 

----------

## msch

 *nbvcxz wrote:*   

>  *msch wrote:*   ktos mi moze powiedziec cos o tych 3 schedulerach? jakies testy? jak wydajnosc? ktorego uzywacie? 
> 
> no to zacznijmy od pytań:
> 
> do czego używasz komputera (np. serwer czy desktop) ?
> ...

 

generalnie system mam na 2 komputerach:

- router/serwer www, mysql i poczta - root i /boot -> ext3, reszta reiserfs4, kernel oparty na najnowszych x86 hardened-sources

- desktop - wszystko na ext3, kernel oparty na najnowszych x86 gentoo-sources + libata patch

----------

## nbvcxz

 *tboloo wrote:*   

> uruchomić system z opcją elevator={cfq|deadline|anticipatory} w lilo/grub

 

to najlepsza opcja testowa;

a pytałem o system plików bo CQF podobno nie najlepiej wypada w połączeniu z reiser4 (o ile mnie pamięć nie myli - proszę o sprawdzenie)

osobiście do desktopu (stary sprzęt) wolę lekkie IO schedulery jak deadline i noop (ze wskazaniem na deadline)

-------- 

do testów wrzuć do kernela wszystkie możliwe schedulery i potestować sam, ale wg mnie:

 *msch wrote:*   

> - router/serwer www, mysql i poczta - root i /boot -> ext3, reszta reiserfs4, kernel oparty na najnowszych x86 hardened-sources

 

najwyraźniej DEADLINE (ze względu na reiser4) lub ANTICIPATORY (dla starszych dysków poniżej 5400rpm) 

 *msch wrote:*   

> - desktop - wszystko na ext3, kernel oparty na najnowszych x86 gentoo-sources + libata patch

 

to wszystko wskazuje na CFQ chociaż ja uparcie spróbowałbym DEADLINE

Edit by Poe

Sklejone posty....   

----------

## msch

czyli generalnie na stare dyski (akurat takie mam w routerze) polecasz anticipatory, gdy uzywam reiserafs4 - deadline a desktop oparty na ext3 - cfq. no zobaczymy, skoncze mature to potestuje troche samemu.

----------

## no4b

AFAIK deadline stosuje się na obciążonych serwerach bazodanowych.

----------

## martin.k

Z I/O schedulerami jest różnie. Wszystko zależy od posiadanego sprzętu, systemu plików, obciążenia (workload) i jeszcze paru innych czynników. 

Generalnie Completely Fair Queuing (CFQ) scheduler udostępnia skalowalną per proces kolejkę I/O i próbuje równo rozdysponować dostępny transfer I/O pomiędzy wszystkie odwołania I/O. CFQ dobrze się sprawdza w średnich i dużych systemach multiprocesorowych i w systemach, które wymagają zbalansowania wydajności pomiędzy wieloma jednostkami logicznymi (LUN) i kontrolerami I/O.

Deadline bazuje na algorytmie deadline, tak aby minimalizować opóźnienia I/O dla danego zapytania I/O. 

Deadline zapewnia działanie prawie w czasie rzeczywistym i używa algorytmu szeregowania (round robin) tak, by  nie zagłodzić procesów. Im więcej kolejek I/O, tym deadline będzie agresywniej szeregował odwołania, tak aby zwiększyć wydajność operacji I/O.

NOOP to prosta kolejka FIFO (pierwsze weszło-pierwsze wyszło), która używa minimalnego zestawu istrukcji CPU dla szeregowania odwołań I/O. Noop zakłada, że wydajność I/O jest albo będzie optymalizowana na poziomie urządzenia blokowego, np.: za pomocą funkcji udostępnianych przez zewnętrzny (inteligentny) kontroler.

Anticipatory (AS) wprowadza kontrolowane opóźnienie przed wyzwoleniem odwołania I/O, tak by agregować i/lub przeszeregować odwołania w celu minimalizacji operacji dyskowych. AS jest pomocny w optymalizacji systemów z małymi lub wolnymi dyskami. Główna niedogodność wynikająca z AS, to większe opóźnienia (latencies) odwołań I/O niż w przypadku pozostałych planistów (schedulerów). Czytaj: do produkcji dźwięku niezbyt się nadaje  :Smile: 

Istnieją również próby, bardziej lub mniej udane, wprowadzenia autotuningu w schedulerach I/O za pomocą algorytmów genetycznych. Polecam dokonania Jake'a Moilanena i jego genetic anticipatory. Genetic-as pozwala na automatyczny tuning, biorąc pod uwagę zmienne obciążenie (workload) i uzyskanie jak najwyższej wydajności. Użycie algorytmów genetycznych pozwala też na zmniejszenie opóźnień. 

Osobiście mam dość przyjemne wspomnienia z zabaway z genetic-as.

Więcej tutaj: http://kernel.jakem.net/ i tutaj: http://kernel.jakem.net/patches/genetic/2.6.16/2.6.16-gl2/. Uwaga!!! Nie bawić się z opcją I/O workload fingerprinting - nie działa poprawnie.

Anticipatory, to wdzięczny temat dla badań, więc polecam również poszukanie w googlach info o: Cooperative Anticipatory Scheduler. Choć patchy na jądro nie znalazłem jak do tej pory  :Smile: 

Poza tym, co do wydajności I/O polecam również łatki Nicka Piggina - Lockless Pagecache. Podobno działa z Reiser4. Więcej na lkml.org albo tutaj: https://forums.gentoo.org/viewtopic-t-462121.html.

----------

## Yatmai

 *martin.k wrote:*   

> 
> 
> Deadline bazuje na algorytmie deadline, tak aby minimalizować opóźnienia I/O dla danego zapytania I/O. 
> 
> Deadline zapewnia działanie prawie w czasie rzeczywistym

 

Czy więc dobrze łapię, że na taki zwyczajny desktop z jednym prockiem i bez szczególnie dużego obciążenia, Deadline będzie najsensowniejszy ?  :Smile: 

 *martin.k wrote:*   

> 
> 
> Anticipatory (AS) wprowadza kontrolowane opóźnienie przed wyzwoleniem odwołania I/O, tak by agregować i/lub przeszeregować odwołania w celu minimalizacji operacji dyskowych. 

 

Coś a la NCQ z Segate'a ? :]

----------

## nbvcxz

 *Art.root wrote:*   

> 
> 
> Czy więc dobrze łapię, że na taki zwyczajny desktop z jednym prockiem i bez szczególnie dużego obciążenia, Deadline będzie najsensowniejszy ? 
> 
> 

 

na to by wychodziło - dodatkowo tak samo twierdzi cheater1034 w CONRAD Installation Guide https://forums.gentoo.org/viewtopic-t-451428.html a ten gość raczej wie co mówi   :Wink: 

----------

## martin.k

 *Art.root wrote:*   

> Czy więc dobrze łapię, że na taki zwyczajny desktop z jednym prockiem i bez szczególnie dużego obciążenia, Deadline będzie najsensowniejszy ? 
> 
> Coś a la NCQ z Segate'a ? :]

 

Co do deadline: tak może być  :Smile:  Trzeba jeszcze przetestować, jak się zachowuje z konkretnym systemem plików  :Smile: 

Mam deadline na 200GB dysku seagate'a na reiserfs i działa przyzwoicie. Anticipatory zasadniczo troszkę wolniejszy był, ale to też w granicach błędu, a raczej subiektywnego odczucia, bo testów nie robiłem.

Co do NCQ i as: to mniej więcej, w duuużym uproszczeniu. NCQ jest realizowane na poziomie urządzenia blokowego  o ile kontroler, do którego jest podpięte potrafi sobie z tym poradzić. AS to już natomiast warstwa software.

Jeśli masz seagate'a z NCQ i kontroler, który obsługuje NCQ, to potestuj też NOOP.

Wszystko to piękna teoria, a w praktyce istnieje jeszcze pewna (duża) liczba zmiennych wpływająca na wydajność konkretnego rozwiązania: sprzęt - I/O scheduler. Nic tylko testować   :Rolling Eyes:   :Wink:  Albo googlować.

SKLEJONE:

 *Poe wrote:*   

> 
> 
> aktualnie bede testowal staircasea 15... zobaczymy co z tego bedzie bo staircase bardzo w kratke dzialal na moim kompie. jedna wersja ladnie, plynnie, a na następnej juz bardzo cieło, skakało i potrzebny byl powrot do poprzedniej wersji.

 

Staircase to CPU scheduler  :Smile: 

A co do cięcia i skakania, to polecam staircase + 2.6.17-rc3-mm1. Ewentualnie 2.6.17-rc3-mm1 + ostatni PlugSched.

Drzewko -mm nieco przyspieszyło ostatnio  :Smile: 

----------

## Poe

 *martin.k wrote:*   

> 
> 
>  *Poe wrote:*   
> 
> aktualnie bede testowal staircasea 15... zobaczymy co z tego bedzie bo staircase bardzo w kratke dzialal na moim kompie. jedna wersja ladnie, plynnie, a na następnej juz bardzo cieło, skakało i potrzebny byl powrot do poprzedniej wersji. 
> ...

 

tak, wiem  :Smile: 

osobiscie zabieram sie do zrobienia sobie kernelka (najwyzszy czas na update) na 2.6.17-rc4 ze staircase, libata, geneticem-I/O + pare patchow z ck i co sie tam jeszcze znajdzie ciekawego (choc chyba poprzestane na tym) i zobaczymy jak bedzie dzialac, bo z genetycznym mialem dosc dobre wspomnienia, a teraz zobaczymy czy bedzie mi sie chcialo rejecty poprawiac, bo nie ma patcha dla 2.6.17-xxx tylko dla 2.6.16... a jak to sie nie uda to dam cfq najprawdopodobniej, albo coś.. sie zobaczy... jak ktos bedzie chetny, udostepnie potem patcha, albo nawet ebuilda do tych sourcesów.

dalbym tam jeszcze -mm, bo ma ciekawe patche, ale zawsze tak bylo ze trzeba bylo wybrac miedzy mm a staircase, bo rejectow po kilkaset linii nie chce mi sie dodawac w sched.c.. moze wybiore jakies pojedyncze z -mm i zaaplikuje

----------

## martin.k

 *Poe wrote:*   

> 
> 
> osobiscie zabieram sie do zrobienia sobie kernelka (najwyzszy czas na update) na 2.6.17-rc4 ze staircase, libata, geneticem-I/O + pare patchow z ck i co sie tam jeszcze znajdzie ciekawego (choc chyba poprzestane na tym) i zobaczymy jak bedzie dzialac, bo z genetycznym mialem dosc dobre wspomnienia, a teraz zobaczymy czy bedzie mi sie chcialo rejecty poprawiac, bo nie ma patcha dla 2.6.17-xxx tylko dla 2.6.16... a jak to sie nie uda to dam cfq najprawdopodobniej, albo coś.. sie zobaczy... jak ktos bedzie chetny, udostepnie potem patcha, albo nawet ebuilda do tych sourcesów.
> 
> dalbym tam jeszcze -mm, bo ma ciekawe patche, ale zawsze tak bylo ze trzeba bylo wybrac miedzy mm a staircase, bo rejectow po kilkaset linii nie chce mi sie dodawac w sched.c.. moze wybiore jakies pojedyncze z -mm i zaaplikuje

 

Z genetic-as to chyba numer z 2.6.17 nie wyjdzie   :Question:  Ale mogę się mylić. Z bloga Jake Moilanena wynika, że ma zamiar wskrzesić te łatki, nawet IBM coś tam pomaga. Efektu na razie nie widać. Z łatkami 2.6.16-gl1 i I/O Workload Fingerprinting kernel mi się wysypał od razu - zwis na max, tylko reset   :Shocked: 

Do 2.6.16-gl2 nawet nie podchodziłem  :Smile:  Pozytywnie odczucia jednak pozostały z czasów 2.6.9 - 2.6.12. Jake ma wykład na LinuxSymposium 2006 właśnie na temat I/O Workload Fingerprinting, więc może coś się pojawi po sympozjum http://www.linuxsymposium.org/2006/view_abstract.php?content_key=45

A co do staircase i drzewka -mm to jest PlugSched - ostatnio jak sprawdzałem, to był dla 2.6.17-rc3-mm1 http://cpuse.sf.net.

He he he... Chyba tutaj wielu jest takich, co jak coś w tle się nie emerguje/kompiluje, to czują się jakoś tak dziwnie  :Smile: 

P.S.

właśnie leci 2.6.17-rc4-mm1  :Smile: 

----------

## Yatmai

 *martin.k wrote:*   

> He he he... Chyba tutaj wielu jest takich, co jak coś w tle się nie emerguje/kompiluje, to czują się jakoś tak dziwnie 
> 
> 

 

To aż tak widać ?  :Very Happy: 

----------

## Poe

 *martin.k wrote:*   

>  *Poe wrote:*   
> 
> osobiscie zabieram sie do zrobienia sobie kernelka (najwyzszy czas na update) na 2.6.17-rc4 ze staircase, libata, geneticem-I/O + pare patchow z ck i co sie tam jeszcze znajdzie ciekawego (choc chyba poprzestane na tym) i zobaczymy jak bedzie dzialac, bo z genetycznym mialem dosc dobre wspomnienia, a teraz zobaczymy czy bedzie mi sie chcialo rejecty poprawiac, bo nie ma patcha dla 2.6.17-xxx tylko dla 2.6.16... a jak to sie nie uda to dam cfq najprawdopodobniej, albo coś.. sie zobaczy... jak ktos bedzie chetny, udostepnie potem patcha, albo nawet ebuilda do tych sourcesów.
> 
> dalbym tam jeszcze -mm, bo ma ciekawe patche, ale zawsze tak bylo ze trzeba bylo wybrac miedzy mm a staircase, bo rejectow po kilkaset linii nie chce mi sie dodawac w sched.c.. moze wybiore jakies pojedyncze z -mm i zaaplikuje 
> ...

 

nie udalo mi się założyć patcha z 2.6.16, zbyt wredne rejecty. a szkoda..

 *martin.k wrote:*   

> 
> 
> He he he... Chyba tutaj wielu jest takich, co jak coś w tle się nie emerguje/kompiluje, to czują się jakoś tak dziwnie 
> 
> P.S.
> ...

 

coz, ja ostatnio mam spory przestoj jeżeli chodzi o nowosci, nowinki, update, uprage itp. nie ma na to jakos czasu i checi ostatnio...  :Smile: 

----------

## martin.k

 *Poe wrote:*   

> 
> 
> nie udalo mi się założyć patcha z 2.6.16, zbyt wredne rejecty. a szkoda..
> 
> 

 

Tak to już jest   :Confused: 

 *Poe wrote:*   

> 
> 
> cóż, ja ostatnio mam spory przestoje jeżeli chodzi o nowości, nowinki, update, uprage itp. nie ma na to jakoś czasu i chęci ostatnio... 

 

Czasem trzeba się wyspać  :Smile:  A i w robocie coś robić trzeba, a nie tylko forum przeglądać. Zwłaszcza, gdy się jest ekonomistą w banku   :Embarassed:   :Laughing:   :Shocked: 

Dobra! Koniec tego paplania, bo się robi off-topic... 

----------

## Yatmai

Może troche szalony pomysł, ale, skoro jest możliwość determinacji schedulera z poziomu grub'a to może jest możliwość zmiany w locie ?  :Smile: 

----------

## kicior

 *Art.root wrote:*   

> Może troche szalony pomysł, ale, skoro jest możliwość determinacji schedulera z poziomu grub'a to może jest możliwość zmiany w locie ? 

 Hint: /sys/block/hda/queue/scheduler

----------

## martin.k

 *Art.root wrote:*   

> Może troche szalony pomysł, ale, skoro jest możliwość determinacji schedulera z poziomu grub'a to może jest możliwość zmiany w locie ? 

 

Jest! Ale tylko w przypadku schedulerów I/O

Przykład dla kernela 2.6.17-rc4:

Aktualny scheduler I/O dla danego urządzenia - mój twardziel (hda):

```

ocalhost / # cat /sys/block/hda/queue/scheduler

noop anticipatory [deadline] cfq

```

Widać, że jadę na deadline  :Smile: 

Zmiana schedulera I/O dla dysku (hda) na powiedzmy... anticipatory

```
localhost / # echo "anticipatory" > /sys/block/hda/queue/scheduler

localhost / # cat /sys/block/hda/queue/scheduler

noop [anticipatory] deadline cfq

```

I po zmianie anticipatory  :Smile: 

Tylko pamiętaj, że w *nixie wszystko jest plikiem! Więc jak przekierujesz echo nie w to miejsce, co trzeba, to he he po danych  :Smile: 

Możesz ustawić jak ci się podoba dla wszystkich urządzeń blokowych.

Niestety CPU schedulera w locie się nie podmieni (... jak na razie).

----------

## Yatmai

A nie będzie efektów ubocznych gdy każdy dysk będzie na innym scheduler'ze ?

----------

## martin.k

 *Art.root wrote:*   

> A nie będzie efektów ubocznych gdy każdy dysk będzie na innym scheduler'ze ?

 

Żadnej tragedii nie będzię  :Smile:  Jeżeli o to chodzi... Reszta to kwestia wytestowania  :Smile: 

..::Milu Edit: ort!

Chyba muszę wyrzucić swoją blaszankę przez okno i zabrać się za czytanie książek, bo te orty mnie wykończą  :Smile: 

----------

## fallow

 *Poe wrote:*   

> 
> 
> dalbym tam jeszcze -mm, bo ma ciekawe patche, ale zawsze tak bylo ze trzeba bylo wybrac miedzy mm a staircase, bo rejectow po kilkaset linii nie chce mi sie dodawac w sched.c.. moze wybiore jakies pojedyncze z -mm i zaaplikuje

 

hehe  :Smile:  zapal nie mija  :Smile:  ? nie bylo az tak zle  :Smile:  kiedy przeszlo do glownego drzewa wiekszosc poprawek dla ingoscheda bylo juz bardzo w porzadku. Z reszta zawsze mozna selektywnie reversowac wybrane patche ktore "koliduja" ze staircasem.

cheers  :Smile: 

----------

## Poe

 *fallow wrote:*   

>  *Poe wrote:*   
> 
> dalbym tam jeszcze -mm, bo ma ciekawe patche, ale zawsze tak bylo ze trzeba bylo wybrac miedzy mm a staircase, bo rejectow po kilkaset linii nie chce mi sie dodawac w sched.c.. moze wybiore jakies pojedyncze z -mm i zaaplikuje 
> 
> hehe  zapal nie mija  ? nie bylo az tak zle  kiedy przeszlo do glownego drzewa wiekszosc poprawek dla ingoscheda bylo juz bardzo w porzadku. Z reszta zawsze mozna selektywnie reversowac wybrane patche ktore "koliduja" ze staircasem.
> ...

 

FAAALLOOOWW!!! Jej, jak sie steskniłem  :Very Happy: 

ano, jakoś tak nie mija... to znaczy ostatnio byl bardzo uspiony, ale to, czym mnie zaraziłes (patchowaniem kerneli, schedulery) pozostało. moze nie mam glebokiej wiedzy, ale lubie to na swój sposób  :Smile: 

reversowanie zawsze mi kiepsko szlo  :Wink: 

dzis zrobilem sourcesy, ale zas cos sie nakrzaniło. łatki swapowskie z ck ostatniego cos kolidowały z rc1 (latki z rc4), nie kompilowalo sie z wybranymi funkcjami, po skompilowaniu, gentoo nie wstalo na tym kernelu, a nie mialem jeszcze czasu dojsc co jest nie tak, a latek raptem kilka. staircase, defaultcfq, libata i chyba tyle. wiecej mi sie nie chcialo narazie zakladac. cos musialem napieprzyc w configu, albo juz nie wiem co, bo nawet rejectów nie bylo, wiec tu skopsac nie moglem (pamietasz, jak sie kiedys Ciebie pytalem ze jak to mozliwe, ze rejectow nie ma, czy cos jest zle ze ich nie ma  :Very Happy: , tak mi sie teraz przypomniało)

pozdrawiam

----------

## msch

wrzucilem sobie patcha staircase na gentoo-sources-2.6.16-r7 i tak sie zastanawiam... musze cos w configu zmienic czy poprostu przekompilowac zeby go uaktywnic? pierwszy raz sam patchuje sobie zrodla jajka  :Wink: 

----------

## Poe

jezeli chodzi o staircase, to wystarczy jak spatchujesz i zrekompilujesz jajko

----------

## martin.k

 *Poe wrote:*   

> jezeli chodzi o staircase, to wystarczy jak spatchujesz i zrekompilujesz jajko

 

Ja to bym dla pewności dał w katalogu ze spaczowanymi źródłami:

```
make oldconfig
```

Łatka Cona Kolivasa przestawia kilka defaultowych nastawów w kernelu (CFQ, HZ) i dodaje swap prefetch  :Smile: 

Więc przed rekompilacją postaraj się o jakiś stary .config, wrzuć go do katalogu ze spaczowanym kernelem i daj make oldconfig. Pozostaje ci odpowiedzieć na kilka pytanek i po krzyku.

Potem rekompilacja i "standardowa procedura instalacyjna" kernela.

----------

## Poe

 *martin.k wrote:*   

>  *Poe wrote:*   jezeli chodzi o staircase, to wystarczy jak spatchujesz i zrekompilujesz jajko 
> 
> Ja to bym dla pewności dał w katalogu ze spaczowanymi źródłami:
> 
> ```
> ...

 

to znaczy tak. sama łatka 2.6.17-rc1-staircase15-full.patch.gz   nie daje swap_prefetch, tylko trzeba dodatkowo założyć patche mm-swap_prefetch-31.patch oraz mm-aggresive_swap_prefetch-2.patch  (notabene u mnie wywalała się kompilacja po włączeniu opcji swap_prefetch i musialem z tego rezygnować). 

fakt, zapomniałem o dodatkowych I/O, ale zauwazylem, ze jezeli ma się w /usr/src/${SRC} .config, założy się patcha i wykona od razu make && make modules_install, to automatycznie pyta się o dodanie/usunięcie/zamodulenie nowej funkcji.

----------

## Yatmai

Propos staircase'a, na stronce http://www.kernel.org/pub/linux/kernel/people/ck/patches/staircase/2.6.16/ znalazłem paczki, teraz moje pytanie. O ile wersja split-out udało mi się założyć, to wersja full-patch zawiera same pliki diff i szczerze nie bardzo wiem w jaki program to wsadzić... Kdiff3 ?  :Smile: 

----------

## milu

Tandem diff i patch powinien być w tym celu pomocny - graficznych metod nie używałem więc nie powiem czy także się daje.

Nie sugeruj się tym, że plik ma rozszerzenie .patch lub .diff to ten sam typ pliku tak naprawdę tylko inaczej nazwany przez autora pliku. Patch powinien załątwić sprawę(możliwe że z jakimiś rejectami ale to inna sprawa)

----------

## Poe

wersja full jesst zgzipowana. zgunzipuj ją po czym w katalogu ze zrodlami daj 

```

patch -p1 < to_co_rozpakowałeś

```

----------

## Yatmai

Nio, dałem rade... tylko i tak mi się posypało cholerstwo...

Primo, że w make menuconfig nie ma wzmianki o staircase, co wydaje mi się podejżane  :Very Happy:  A secundo, przy bootowaniu, zanim doszedł do usług, stanął w miejscu i stał... i stał... aż wcisnąłem CTRL+C, wywalił, coś, że nie może odczytać jakiegoś skryptu w /lib/... i to samo z kolejną linijką... Ech ale ja sobie życie utrudniam  :Very Happy: 

----------

## msch

wyzej juz napisali, ze w menuconfig nic nowego sie nie pojawia i nalezy ponownie skompilowac kernela by odczuc staircase

----------

## Raku

 *Art.root wrote:*   

> Propos staircase'a, na stronce http://www.kernel.org/pub/linux/kernel/people/ck/patches/staircase/2.6.16/ znalazłem paczki, teraz moje pytanie. O ile wersja split-out udało mi się założyć, to wersja full-patch zawiera same pliki diff i szczerze nie bardzo wiem w jaki program to wsadzić... Kdiff3 ? 

 

hmmm, a nie prościej zrobić emerge ck-sources?

works for me  :Wink: 

```
raku@demon ~ $ uname -a

Linux demon 2.6.16-ck10 #2 PREEMPT Wed May 17 22:37:12 CEST 2006 i686 AMD Athlon(tm) XP 1600+ GNU/Linux
```

----------

## Yatmai

Do ck bede musiał dołożyć patcha na fb, vesa-tng i libata... czyli prawie na jedno dochodzi  :Very Happy: 

SKLEJONE

W sumie doszedłem do wniosku, że ww patche to drobnostki w stosunku do staircase'a i zrobiłem to od drugiej strony :]

Testów nie robiłem, choć system wydał się odrobinkę lżejszy  :Very Happy: 

W sumie skoro już mamy wycieczkę po jajkach, to chciałbym zapytać o wasze opinie/doświadczenia odnośnie linii -mm (głównie w odniesieniu do vanilla- gentoo- i ck- sources  :Smile:   )

----------

## Poe

patch -mm zawsze zawierał mnóstwo nowinek oraz rzeczy testowo-eksperymentalnych, przez co stabilnosc niektorych rzeczy byla niekiedy rozna, ale wiele latek bylo naprawdę trafnych i dobrze zrobionych. ale jest to na tyle duzy moloch, tak jest w kodzie pozmieniane, ze zakladanie patchów nie przystosowanych na -mm jest niemal niemozlwe (chyba ze chcesz poprawiac z kazdym patchem po kilka dlugich rejectów, ktore sa naprawde niezle poplatane i namieszane)

ale IMHO -mm nie jest zle, nigdy nie narzekałem na tą gałąź. 

gentoo-sources uzywalem moze jedną czy dwie wersje na samym początku mojego uzywania Gentoo (tj. troche ponad 2 lata temu), wiec tu nei wypowiem sie jak przyrownac to do -mm

-ck tez nigdy nie uzywalem w calosci, tylko wybierlame sobie co potrzebniejsze patche  :Wink: 

----------

## Yatmai

Poe, to jakiego w końcu jajka używasz ?  :Very Happy: 

----------

## Gabrys

Ja już skończyłem swoją przygodę z jajami, bo za dużo jaj  :Wink: . Tak serio, jak coś się sypało, zawsze się zastanawiałem "a może to przez to nowe jądro w stylu 2.6.16-rc6-mm8  :Wink: ). Wielkich różnic nie widziałem, a więc mam back to (gentoo-)sources  :Very Happy: . I o dziwo działa bez tych wszystkich modnych łatek  :Wink: .

A co do schedulera, to włączyłem sobie deadline i system jest ogólnie minimalnie szybszy, ale jak już przymuli, to nie puszcza przez parę sekund. Przy anticipatory chyba działał najpłynniej. (Seagate Barracuda ileś, około 55 MiB/s surowego odczytu).

----------

## Poe

 *Art.root wrote:*   

> Poe, to jakiego w końcu jajka używasz ? 

 

zawsze jakiegos hand-made'a wyprodukuję sobie na własne potrzeby  :Smile: 

aczkolwiek moim takim stałym kernelem jest 2.6.14-rc1-vivid2, stare, ale działą niezle  :Smile: 

----------

## martin.k

 *Poe wrote:*   

> 
> 
> ale IMHO -mm nie jest zle, nigdy nie narzekałem na tą gałąź. 
> 
> 

 

Zgadzam się z przedmówcą  :Smile:  A za sprawą 2.6.17-rc + ck jest zdecydowanie szybciej... Szybciej może źle powiedziane ale bardziej interaktywnie. Szczególnie fajnie sprawował się 2.6.17-rc3-mm1 + ck. Różnica widoczna gołym okiem  :Smile: . Pamiętam, że gdzieś na Unsupported Software cheater1034 wyprodukował patcha no-sources na tej właśnie bazie. 

Z 2.6.17-rc4-mm2 nvidia na binarnych sterownikach mi się pluła a famd i keymaps segfaultowały. Teraz preparuję 2.6.17-rc4-mm3 - zobaczym co z tego wyjdzie.

----------

## Poe

@martin.k, -mm+-ck? a rejecty? przeciez juz sam staircase na -mm na sched.c ma kilkaset linii, nie wspominam juz o innych patchach....

----------

## martin.k

 *Poe wrote:*   

> @martin.k, -mm+-ck? a rejecty? przeciez juz sam staircase na -mm na sched.c ma kilkaset linii, nie wspominam juz o innych patchach....

 

Pewnie będę sie powtarzał, ale trudno. Nikt nie zmusza Cię do walki z tandemem -ck + -mm.

Istnieje jeszcze PlugSched rozwijany przez dr Petera Williamsa: http://cpuse.sf.net

Ostatnia wersja dla -mm to chyba 2.6.17-rc4-mm1. Co zawiera PlugSched nie będę się wywodził - na pewno Staircase jest  :Smile: 

Ze strony:  *Quote:*   

> The purpose of this project is to facilitate the evaluation diverse CPU scheduling paradigms.

 

Pozostałe łatki z -ck to już we własnym zakresie trzeba dłubać - jeśli są Ci bardzo potrzebne.

----------

## Poe

 *martin.k wrote:*   

>  *Poe wrote:*   @martin.k, -mm+-ck? a rejecty? przeciez juz sam staircase na -mm na sched.c ma kilkaset linii, nie wspominam juz o innych patchach.... 
> 
> Pewnie będę sie powtarzał, ale trudno. Nikt nie zmusza Cię do walki z tandemem -ck + -mm.
> 
> 

 

nie no, ja jestem jak najbardziej za  :Smile:  tylko po prostu przerazila mnie perspektywa tylu rejów, ktorych nie mialbym czasu, checi i umiejetnosci poprawiac, o to mi tylko chodzilo  :Wink:  a o plugschedzie zapomniałem calkiem

----------

