niedziela, 9 lutego 2014

APM

Geneza

Skrypt APM zbudowałem w wyniku moich poszukiwań najbardziej optymalnego sposobu zarządzania energią i zasobami sprzętowymi oraz balansowania wydajnością i responsywnością systemu ... "w jednym". Tu po wielu miesiącach poszukiwań i w wyniku tysięcy prób powstały skrypty, które nazwałem APM [Advanced Power Management].

Skrypty te korzystają już z "infrastruktury" pm-utils. Przyjąłem, że nie będę na nowo "wynajdował koła", a po prostu skorzystam już z istniejących rozwiązań, jednak całkowicie zmieniając treści je wypełniających. Jak zapewne sami tego doświadczyliście, standardowo przyjęte rozwiązania są delikatnie to ujmując "niesatysfakcjonujące". Właśnie ten brak zadowolenia z efektów pracy standardowych rozwiązań, skutkował szukaniem czegoś co zniweluje te problemy. Po wielomiesięcznych poszukiwaniach, analizach dokumentacji kernela, sterowników, pm utils, etc. rozpocząłem tworzenie skryptów, których zadaniem było dynamiczne zarządzanie zasobami, w zależności od stanu zasilania. Tak powstał APM 1.0. Kolejne zmiany i ulepszenia doprowadziły do obecnej formy APM 3.2. Myślę, że ta wersja na pewno nie będzie ostateczną, co wynika z ciągłego i bardzo szybkiego rozwoju zarówno kernela, jak i pozostałych komponentów Linuksa.

Nastawy

W związku z różnymi architekturami procesorów oraz rożnymi potrzebami Użytkowników, przyjąłem, iż konieczne jest rozbicie skryptów na 6 wersji:

  1. Performance-ondemand - ten tryb pracy przeznaczony jest dla procesorów AMD [wszystkich] oraz procesorów Intela [z rodziny c2d], korzysta on ze sterownika CPUFreq. Tryb performance, czyli maksymalna wydajność, aktywowana jest w czasie pracy na zasilaniu sieciowym [AC]. Natomiast tryb ondemand, tj. tryb mieszany [płynna zmiana częstotliwości pracy procesora w zależności od potrzeb] w czasie pracy na zasilaniu bateryjnym.
  2. Performance-conservative - również tryb pracy przeznaczony jest dla procesorów AMD [wszystkich] oraz procesorów Intela [z rodziny c2d], korzysta on ze sterownika CPUFreq. Tryb performance, czyli maksymalna wydajność, aktywowana jest w czasie pracy na zasilaniu sieciowym [AC]. Natomiast w tym przypadku tryb conservative oznacza stałe najniższą możliwą częstotliwości pracy procesora w czasie pracy na zasilaniu bateryjnym. takie rozwiązanie polecane jest przede wszystkim dla starszego rodzaju maszyn.
  3. Ondemand-ondemandpodobnie jak w/w tryb pracy przeznaczony jest dla procesorów AMD [wszystkich] oraz procesorów Intela [z rodziny c2d], korzysta on ze sterownika CPUFreq. W tym przypadku tryb ondemand, czyli mieszany [płynna zmiana częstotliwości pracy procesora w zależności od potrzeb], aktywowany jest w czasie pracy zarówno na zasilaniu sieciowym, jak i na zasilaniu bateryjnym. Ten tryb pracy jest dedykowany przede wszystkim tym Użytkownikom, którzy cenią sobie cieszę i chłód maszyny, nawet za cenę pewnego spadku wydajności i responsywności [w stosunku do tryby performance] w czasie pracy na zasilaniu sieciowym.
  4. Conservative-conservative podobnie jak w/w tryb pracy przeznaczony jest dla procesorów AMD [wszystkich] oraz procesorów Intela [z rodziny c2d], korzysta on ze sterownika CPUFreq. W tym przypadku tryb conservative, czyli stałe działanie z najniższą możliwą częstotliwością pracy procesora, aktywowany w czasie pracy zarówno na zasilaniu sieciowym, jak i na zasilaniu bateryjnym. Ten tryb pracy jest dedykowany przede wszystkim tym Użytkownikom, dla których cisza i chłód maszyny, stanowią pierwszoplanową wartość. Nawet za cenę poważnego spadku wydajności i responsywności [w stosunku do tryby performance] w czasie pracy na zasilaniu sieciowym.
  5. Intel-performanceten tryb pracy przeznaczony jest dla procesorów Intela z rodziny icore [i3, i5, i7], korzysta on ze sterownika Intel p-state. Tryb performance, czyli maksymalna wydajność, aktywowana jest w czasie pracy na zasilaniu sieciowym [AC]. Natomiast czasie pracy na tryb na zasilaniu bateryjnym, aktywowany jest tryb powersave, który w tym przypadku tożsamy jest z trybem ondemad dla starszej generacji procesorów Intela. Zatem podobnie jest trybem mieszanym [płynna zmiana częstotliwości pracy procesora w zależności od potrzeb].
  6. Intel-powersaveten tryb pracy przeznaczony jest dla procesorów Intela z rodziny icore [i3, i5, i7], korzysta on ze sterownika Intel p-state. W tym przypadku, zarówno w czasie pracy na zasilaniu sieciowym [AC], jak i na zasilaniu bateryjnym, aktywowany jest tryb powersave, który w tym przypadku tożsamy jest z trybem ondemad dla starszej generacji procesorów Intela. Zatem podobnie jest trybem mieszanym [płynna zmiana częstotliwości pracy procesora w zależności od potrzeb].

Składnia w/w ustawień

Zatem znamy już tryby pracy, aby zapewnić pełną jasność jak należy interpretować powyższą składnie nastawów dla APM, wyjaśniam iż:
  • Pierwszy człon składni, np. performance- dotyczy działania danej maszyny w trybie pracy na zasilaniu sieciowym [AC],
  • Natomiast drugi człon, np -ondemand 
W przypadku natomiast nastawów dla architektury Intel icore [ i3, i5, i7], tj. intel-performance oraz intel-powersave - nazwa danego ustawienia podkreśla jedynie tryb pracy na zasilaniu sieciowym [AC]. Tu bowiem w obu przypadkach na zasilaniu bateryjnym mamy tryb powersave.

W przypadku maszyn stacjonarnych/desktop, zasadnicze znaczenie ma pierwszy człon nazwy danego nastawu. W przypadku natomiast Inela icore decydujące znaczenie ma tu drugi człon nazwy.


Dodatkowe FIX`y:

  • APM WiFi FIX - ta opcja odpowiada za aktywowanie lub dezaktywacje oszczędności energii na układach WiFi. W standardowym trybie APM dezaktywuje tu oszczędność energii = czek jest niezaznaczony. Natomiast gdy zaznaczymy "ptaszkiem" następuje aktywacja oszczędności energii w trybie pracy na baterii. Konieczność ustawienia dwóch trybów pracy wynika z problemów, jakie w pewnych przypadkach stwarzają chipy Intela. Na niektórych z nich aktywacja oszczędzania energii skutkuje poważnymi "lagami" [opóźnieniami] w czasie działania sieci, co w skrajnych przypadkach uniemożliwia korzystanie z niej.
  • APM rts5139 FIX - w tym przypadku fix ten powstał, aby dać możliwości aktywacji/ dezaktywacji sterownika Realtek rts5139. Sterownik ten odpowiedzialny jest za działanie układów kart pamięci pod w/w układem [Realtek Media Card Reader]. W związku z faktem, iż sterownik ten jest obecnie jeszcze w fazie rozwoju, standardowo w APM go wyłączam, gdzie w pewnych sytuacjach może doprowadzić do błędów po stronie USB-storage, co skutkuje całkowitym brakiem funkcjonowania wszelkich pamieć masowych pod USB [dyski, dongle, etc.], w chwili wystąpienia błędu - aż do czasu restartu systemu. W związku z powyższym jeśli użytkownik w danym momencie potrzebuje użyć czytnik sterowany przez ten sterownik, może włączyć tym fix`em [zaznaczyć "ptaszkiem"] ten sterownik i w razie potrzeby ponownie go dezaktywować.