Dokładny opis zarządców procesora i I/O
Temat będzie sukcesywnie aktualizowany aż zostanie przetłumaczony w całości. Gdy na uczelni będzie trochę więcej wolnego czasu to pojawią się dodatkowe posty - myślę, że co tydzień tak będzie. Wstępnie mam w planach 5 postów dlatego proszę adminów i moderatorów o nieusuwanie zarezerwowanych postów na dole. Pozdrawiam i proszę zgłaszać jakieś błędy lub po prostu złe tłumaczenie.
Spis treści:
https://forum.android.com.pl/topic/272072-doka-adny-opis-zarzae-dca-w-procesora-i-i-o/
https://forum.android.com.pl/topic/272072-doka-adny-opis-zarzae-dca-w-procesora-i-i-o/
Forum po zmianach, link nie działa
[table=width: 500, class: grid]
Zarządcy procesora
[/table]
Nazwy zarządców i ich opis
W kernelach jest używanych 19 zarządców, o których będzie dziś mowa.
Ondemand
Ondemandx
Conservative
Interactive
Interactivex
Lulzactive
Lulzactivex
Smartass
SmartassV2
Interllidemand
Lazy
Lagfree
Lionheart
LionheartX
Brazilianwax
SavagedZen
Userspacce
Powersave
Performance
Opis zarządców
Ondemand:
Domyślny zarządca prawie we wszystkich stockowych kernelach. Głównym zadaniem tego zarządcy jest zmiana częstotliwości do maksymalnej jeśli tylko zostanie zauważona jakaś aktywność systemu (można zmienić to zmieniając parametry smooth scaling). Ten zarządca ‘skacze’ do maksymalnej częstotliwości kiedy CPU jest używane i spada częstotliwość kiedy CPU przestaje być używane, jest mniej wykorzystywane. Jest to niezawodny zarządca jednak bateria nie będzie trzymała bardzo długo i wydajność nie będzie najlepsza przy domyślnych ustawieniach. Jednym z powodów dlaczego ten zarządca nie jest najlepszy jeśli chodzi o wydajność jest to, że sam zarządca sobie ustala następną częstotliwość .
Ondemandx:
Praktycznie jest to ten sam zarządca co został opisany wyżej. Używając tego zarządcy bateria wykaże się dłuższą żywotnością. Gdy wyświetlacz jest wyłączony częstotliwość maksymalna jest ograniczona do 500 mhz. Mimo to, że ondemand jest domyślnym zarządcą w wiel kernelach i jest rozpoznawany jako stabilny, pewny to zależy to głównie od zdolności procesora do szybkiej zmiany taktowań. Czytałem gdzieś, że wydajność tych dwóch zarządców (ondemand/ondemandx) znacznie się różni dla każdego trybu I/O. Nie jest to prawdą dla większości innych zarządców. Osobiście wydaje mi się, że ondemand/ondemandx radzi sobie najlepiej w trybie SIO.
Conservative:
Wolniejszy Ondemand który zmienia częstotliwość wolniej, żeby bateria dłużej wytrzymywała. Bazuje na zarządcy ondemand. Działa jak ondemand dynamicznie zmieniając czestotliwość bazując na wykorzystaniu procesora. Ten zarządca zmienia częstotliwość bardziej stopniowo (mniejsze skoki częstotliwości). Inaczej mówiąc – ten zarządca stopniowo, krok po kroku podnosi częstotliwość i później skacze do najniższej w stanie bezczynności. Zarządca conservative dynamicznie zmienia częstotliwość bez wykorzystywania maksymalnej częstotliwości.
Interactive:
Uważany jako szybszy od Ondemand. Szybszy = mniejsza żywotność baterii. Ten zarządca dobrze sobie radzi w grach, tam gdzie telefon jest mocno wykorzystywany. Ten zarządca zamiast zwiększać od razu częstotliwość jak ondemand określa jak zwiększyć częstotliwość gdy procesor wychodzi z bezczynności. Zalety tego zarządcy: 1. Ten zarządca zwiększa częstotliwość w czasie, nie od razu. 2. Wyższy priorytet zmiany częstotliwości na większą przekłada się na większą wydajność procesora. Interactive jest tak jakby mądrzejszym Ondemand z powodu lepszej optymalizacji.
Interactivex:
Jest to zarządca Interactive z dodatkowym ?wake profile?.
Lulzactive:
Nowy zarządca od Tegrak, bazuje na Interactive i Smartass. Jeden z najlepszych zarządców. Są dostępna dwie wersję. Opiszę tą nowszą. Trzy razy więcej możliwości konfiguracji przez użytkownika niż w starszej wersji np. Inc_cpu_load, pump_up_step, pump_down_step. Daje to znacznie większą kontrolę dla użytkownika niż w starszej wersji. Możemy ustawić próg w którym zarządca decyduje o zwiększeniu, zmniejszeniu częstotliwości. Możemy także ustalić liczbę korków, która może być pominięta podczas zwiększania, zmniejszania częstotliwości.
Lulzactiveq:
Jest to zmodyfikowany przez użytkownika XDA roberobsc zarządca Lulzactive, używany w Siyah kernel dla SGS2, SGS3. Wprowadza dodatkowo kolejną możliwość konfiguracji przez użytkownika dec_cpu_load, pomaga to w zmniejszaniu częstotliwości, bardziej czułe to się staje. Lulzactiveq jest pierwszym zarządcą opartym na Interactive z ?hotplugging logic inbuilt?. Kiedy CPU wychodzi ze stanu bezczynności jest to czas na podjęcie decyzji dotyczących zwiększenia częstotliwości. Jeśli obciążenie jest większe lub równe wartości inc_cpu_load to częstotliwość się zwiększa (jak w standardowym lulzactive), jeśli obciążenie jest mniejsze od dec_cpu_load to częstotliwość jest zmniejszana. To eliminuje jednorazowe skoki częstotliwości.
Smartass:
Ten zarządca jest rezultatem ?przepisania/kompilowania? kodu zarządcy Interactive. Głównym celem twórcy było zwiększenie pracy na bterii bez straty wydajności. Nadal nie jest tak samo przyjazny dla baterii jak SmarassV2. Przy wyłączonym ekranie Smartass zbyt często wskakiwał na wyższe częstotliwości.
SmartassV2:
Wersja druga wyżej opisywanego zarządcy. Kolejny ulubiony przez wielu użytkowników. Zarządca celuje w „idealną częstotliwość”, zwiększa częstotliwość bardziej agresywnie i odwrotnie z jej zmniejszaniem. Używa innych częstotliwości przy wyłączonym i włączonym ekranie – awake_ideal_freq lub sleep_ideal_freq. Ten zarządca zmienia częstotliwość bardzo szybko kiedy ekran jest wyłączony (sleep_ideal_freq) i zwiększa częstotliwość szybko po wybudzeniu (do awake_ideal_freq) gdy wyświetlacz jest włączony. Nie ma górnej granicy dla częstotliwości przy wyłączonym wyświetlaczu – inaczej niż w Smartass. Mottem tego zarządcy jest balans pomiędzy wydajnością a żywotnością baterii.
Intellidemand:
Intellidemand aka Intelligent Ondemand od Faux jest kolejnym zarządcą opartym na Ondemand. Wielu użytkowników wierzy, że nie jest przeznaczony do OC jednak jest to nieprawda. Gdy GPU jest obciążone (gry, benchmarki, mapy itd) Intellidemand zachowuje się jak ondemand. Kiedy GPU nie jest aż tak obciążone, intellidemand ustawia maksymalną częstotliwość do tej, która będzie dobra dla żywotności baterii w tym momencie. Nazywa się to „browsing mode”. Można znaleźć tutaj ślady zarządcy Interactive, który był opisywany wyżej. Podsumowując Intellidemand jest czymś w rodzaju inteligentego Ondemand, który w czasie czuwania ustawia maksymalną częstotliwość na tą, która jest najlepsza dla żywotności naszej baterii. Gdy GPU jest mocno wykorzystywane zachowuje się jak Ondemand aby zapewnić wymaganą wydajność. Intellidemand nie podnosi częstotliwości do maksymalnej gdy ekran jest wyłączony.
Lazy:
Zarządca stworzony przez użytkownika Ezekeel, jest to praktycznie Ondemand z dodatkowym parametrem min_time_state, który określa ile czasu CPU ma pozostać na danej częstotliwości przed jej zaminą. Pomaga to w usunięciu problemów ze stabilnością spowodowaną szybką zmianą częstotliwości przez Ondemand. Lazy posiada także parametr screenoff_maxfreq, który gdy jest aktywowany zawsze wybierze maksymalną częstotliwość gdy wyświetlacz jest wyłączony.
Lagfree:
Lagfree jest podobny do ondemand. Główną różnicą jest optymalizacja Lagfree w stronę żywotności baterii. Częstotliwość jest zwiększana i zmniejszana z wdziękiem (nie wiedziałem jak to napisać
^^), nie tak jak w Ondemand skoki do największej częstotliwości pojawiały się bardzo często. Lagfree nie pomija żadnej częstotliwości podczas jej zwiększania lub zmniejszania. Pamiętaj, że jeśli potrzebna jest duża częstotliwość w danej chwili (np. Gry) to Lagfree nie poradzi sobie tak dobrze z tym, ponieważ nie pomija on innych nieużywanych w danym momencie częstotliwości, inaczej niż Ondemand.
Lionheart:
Lionheart bazuje na zarządcy conservative, który bazuje na update3 samsunga. Tweaki pochodzą od Knzo i Morfic. Główna idea pochodzi od Netarchy. Można zobaczyć
tu . Zmienione zostały niektóre parametry przez co ten zarządca bardziej zachowuje się jak performance, czyli zjada więdzej baterii przez bardziej agresywne skalowanie.
LionheartX:
Bazuje na Lionheart z niewielkimi zmianami np. Posiada profil uśpienia od Smartass.
Brazilianwax:
Podobny do SmartassV2. Bardziej agresywne skalowanie, większa wydajność, gorsza praca na baterii.
SavagedZen:
Kolejny zarządca bazujący na SmartassV2. Osiąga dobry balans pomiędzy wydajnością a długością pracy na baterii w porównaniu do Brazilianwax.
Userspace:
Użytkownik ma możliwość okreslić częstotliowść – inaczej niż inni zarządcy.
Powersave:
Blokuje maksymalną częstotliwość, która zarazem jest minimalna. Nie może być używany jako zarządca procesora dla profilu screen-on i screen-off.
Performance:
Ustawia minimalną częstotliwość jako maksymalną. Używać do benchmarków!
Wynika z tego, że zarządcy procesora mogą być podzieleni na 4 kategorię:
Bazujących na Ondemand:
Ondemand, OndemandX, Intellidemand, Lazy, Lagfree
Bazujących na Conservative:
Conservative, Lionheart, LionheartX
Bazujących na Interactive:
Interactive, InteractiveX, Lulzactive, Smartass, SmartassV2, Brazilianwax, SavagedZen.
Inne:
Userspace, Powersave, Performance.
Oryginalny temat z XDA w języku angielskim. Zawiera dodatkowe informacje nie zawarte w tym poście.