Lepsze wrogiem dobrego, czyli perypetie z zarządzaniem zasilaniem w Intel Rapid Storage

Po hejcie na AIntel-logoMD przyszedł czas na trochę hejtu na Intela, żeby było sprawiedliwie. Wpis ten powstał w celu pomocy innym osobom, borykającym się z problemami ze swoimi podsystemami pamięci masowej, którzy męczeni niebieskimi ekranami śmierci i dziwną pracą dysków zastanawiają się czy przypadkiem ich dyski SSD/ HDD nie są uszkodzone. Okazuje się że problem ten można rozwiązać przez zmianę konfiguracji sterowników Intel Rapid Storage, w dalszej części tekstu dokładnie opiszę problem i jego rozwiązanie. W skrócie: Intel w pogoni za zwiększeniem efektywności energetycznej ultrabooków i tabletów przegiął w swoich sterownikach z ekstremalną oszczędnością energii, kosztem stabilności i trwałości sprzętu, na czym tracą użytkownicy klasycznych pecetów. 

Część 1 – wyłączanie się dysków SSD

Czasami, gdy zostawiałem swojego Haswella włączonego na kilkadziesiąt minut bez obciążenia witał mnie komunikat że system uruchomiono ponownie po błędzie którego kod oznaczał jednoznacznie problem z dyskiem systemowym, dokładnie tak jakby nagle podczas pracy komputera wyłączył mi się SSD (Crucial MX100 256GB). Czasami po resecie dysk przestał być wykrywany, a jako że nie mam ustawionego prócz niego żadnego innego urządzenia startowego witał mnie EFI Shell. Było to dość zastanawiające. Wykluczyłem wszelkie niestabilności samego sprzętu kierując się jakimś uszkodzeniem SSD lub „niedogadywaniem się” go z kontrolerem dyskowym.

Po trafieniu na temat na forum Cruciala gdzie okazało się że sporo osób ma ten sam problem rozwiązanie problemu okazało się dziwne. Okazuje się że czasami wbudowana w intelowy sterownik AHCI opcja „Zarządzanie łączem zasilania” (Link power management) nie działa poprawnie tak jak powinna doprowadzając do „odpięcia” się dysku SSD podczas pracy komputera. Właśnie dlatego niestabilność systemu pojawia się dopiero po kilkudziesięciu minutach zostawienia komputera na „jałowym” biegu. Problem nie pojawia się na każdym SSD (Na Vertexie 4 nie pamiętam żeby mi się to przytrafiło, choć też mogło się tak dziać, a winę zwalałem na ramy). Możliwe też że to jakiś bug w firmware dysków Cruciala. Nie zmienia to faktu że wyłączenie opcji „Zarządzanie łączem zasilania” rozwiązuje problem:

rapid2

Problem dotyczy sporej ilości osób, gdyż wielu posiadaczy SSD na platformach Intela chce wyciągnąć z nich większą wydajność instalując dedykowane intelowe sterowniki zamiast tych wbudowanych w Windows (na których problem nie występuje). Z tym oprogramowaniem Rapid Storage wiąże się druga, nieco bardziej upiorna wada…

Część 2 – rozruchanie dysków HDD

Jeśli posiadacie platformę opartą na Ivy Bridge (chipsety serii 7), lub nowszą i macie choć jeden dysk HDD pod żadnym pozorem nie instalujcie sterowników Intel Rapid Storage w wersji 13.1 lub 13.2 (i być może nowszych), gdyż zabijecie sobie dysk twardy. Już tłumaczę dlaczego…

Jak wynika z tego tematu na forum Intela pełnego wypowiedzi wkurwionych użytkowników w nowej wersji sterowników postanowiono ustawić patametr APM dla dysków twardych obsługujących tę funkcję na sztywno na 80h. Co to oznacza? Technologia APM (Advanced Power Management) dla dysków twardych powstała w celu oszczędzania energii i zwiększenia odporności na wstrząsy dysków w komputerach przenośnych. W zależności od ustawień dysk parkował głowice zaraz po zakończeniu jakiejkolwiek operacji IO. Obniżało to nieco pobór prądu i znacznie zwiększało trwałość dysków twardych w komputerach przenośnych narażonych na wstrząsy, co jest wykorzystywane w większości biosów i dysków laptopowych. Uprzedzając komentarze – APM dla dysków nie ma nic wspólnego z opcją wyłączenia dysku twardego po iluś tam minutach bezczynności w zaawansowanych opcjach zasilania w Windows…

APM nie ma sensu w komputerach stacjonarnych których nigdzie nie przenosimy. Włączenie tej opcji i ustawienie jej na standardowy parametr 80h (w systemie dziesiętnym 128) w komputerze stacjonarnym powoduje więcej problemów niż korzyści. Dysk wtedy bez przerwy parkuje i odparkowuje głowice, co prowadzi do szeregu niezbyt przyjemnych efektów:

  • wkurwiające stukanie co chwila przy jakimkolwiek dostępie do danych
  • opóźnienie dostępu do danych, nawet do kilkuset milisekund, bo ponowne pozycjonowanie głowicy zajmuje trochę czasu
  • drastyczne zmniejszenie żywotności dysku twardego

Szczególnie ostatni punkt nie jest miły. Dysk nie może sobie kilka razy w ciągu minuty parkować ciągle głowic, w końcu dojdzie do zmęczenia materiału i wykończenia jego mechaniki. Typowe domowe dyski twarde mają w swoich specyfikacjach obliczoną ilość parkowań i pozycjonowań głowic na około 600 tysięcy. Po jednym intensywnym dniu pracy na APM ustawionym na 80h parametr „Load/Unload Cycle Count” w SMART rośnie o tysiąc. Co to oznacza? dwa, maksymalnie trzy lata i mamy zajechany dysk… Dla producenta idealnie bo akurat po skończeniu gwarancji…

hh

Intel – mamy w dupie to że masz komputer stacjonarny, damy Ci na sztywno ustawienie z laptopa.

Korzystanie przez 3 dni (zanim doszedłem do rozwiązania problemu) z mojego Samsunga F3 750GB służącego za magazyn danych było udręką. Przycięcia podczas odtwarzania muzyki i filmów (kiedy bufor załadowany z dysku się kończył i trzeba było ponownie go odczytać, a ponowne pozycjonowanie głowicy powoduje opóźnienie). Wczytywanie miniaturek zdjęć po otwarciu folderu następowało po około pół sekundy zmulenia i po charakterystycznym głośnym kliknięciu dysku, ogólnie tragedia. Być może typowy użytkownik zawalonego mułem komputera nie zauważy zupełnie problemu, ale ja przyzwyczajony do mocy i5-4570 od razu wyłapałem problem.

Jak to rozwiązać? Wywalić Intel Rapid Storage w wersji 13.x, uruchomić ponownie komputer, zainstalować stąd wersje 12.9, potem wyłączyć APM np. w programie CrystalDiskInfo dla każdego obsługującego go dysku, a następnie wyłączyć i włączyć komputer (koniecznie z odcięciem zasilania) żeby sprawdzić czy zmiany odniosły skutek. Poprawna konfiguracja wyłączonego APM skutkuje tym że parametr „Load/Unload Cycle Count” rośnie tylko o 1 przy każdym włączeniu/wyłączeniu dysku i jest mniej więcej zgodny z „Start/Stop Count” i „Power Cycle Count”.

Co zrobić jeśli mamy Haswella Refresh i chipset serii 9 którego już nie obsługuje wersja 12.9? Używać Microsoftowych sterowników wbudowanych w Windows i czekać na wersję 13.5, gdzie problem ma być podobno naprawiony.

Konkluzja

Problemy intelowych sterowników pamięci masowych są tak perfidne, że nie wydają się zwykłym błędem lub niedopatrzeniem, a celowym działaniem mającym na celu zoptymalizowanie ich tylko dla urządzeń przenośnych. Na szczęście jest spora szansa że pod naciskiem użytkowników wszystkie te niezbyt miłe dla pecetowców zagrywki zostaną ukrócone. Czekamy.