Silniejszy tryb laptop_mode w systemie Linux

6

Czy mogę mieć silniejszy tryb laptopa w systemie Linux?

Chcę obrócić dysk twardy i uniemożliwić jego uruchomienie, nawet jeśli coś chce przeczytać coś, co nie jest w pamięci podręcznej. Ogólnie chcę mieć te tryby:

  1. Normalna
  2. Aktualny tryb laptopa
  3. Silniejszy tryb laptopa: włącza się tylko wtedy, gdy trzeba przeczytać coś, co nie jest buforowane (i buforować). Żadnych spinów, żeby coś napisać, chyba że naprawdę pamięć pamięci (wyjątek: wyraźne polecenie „synchronizacji” w konsoli). Jądro może w tym celu utrzymywać procesy w trybie uśpienia D przez 10 sekund.
  4. Wymuszony tryb laptopa: nie obracaj się, kropka. Nadal obrażaj procesy w trybie uśpienia, chyba że wyłączę ten tryb. Jakby zamiast dysku twardego była bomba.

Chcę również mieć śledzone czasy dostępu (mount -o atime), ale nie chcę, aby dysk twardy był rozpinany tylko w celu ich aktualizacji.

Czy są jakieś ustawienia lub łatki jądra, które mogą się do tego zbliżyć?

Może powinienem napisać specjalny harmonogram IO dla „trybu wymuszonego laptopa”? Np. W echo suspend > /sys/block/sda/queue/schedulercelu zablokowania napędu i echo cfq > /sys/block/sda/queue/schedulerodblokowania go ponownie?

Vi.
źródło
Czy powinien być migrowany do stackoverflow? A może po prostu zamknięty? (Zaimplementowałem jeden z trybów, o których mówiłem).
Vi.

Odpowiedzi:

1

Szybko zakodowano „tryb wymuszonego laptopa” jako programista io. Testowane najpierw w UML, a następnie na moim laptopie, nawet bez restartu.

http://vi-server.org/vi/0001-block-Introduce-hung-iosched.patch

Kiedy wydać echo hung > /sys/block/sda/queue/scheduler, a następnie hdparm -y /dev/sdatwardych dysków i przystanków nie odezwie.

Kiedy muszę coś przeczytać, po prostu to robię ” echo cfq > /sys/block/sda/queue/scheduler.

Widzę też, jakie procesy chcą powodować spinup (są one uśpione). reiserfs i pdflush zostają zawieszone. Następnie syslogd.

Aby zapobiec próbom synchronizacji, tymczasowo wyłączam synchronizacje echo 0 > /proc/sys/fs/sync-enable. Powinno być mniej lub bardziej bezpieczne, ponieważ dysk twardy jest już zamknięty. Zapewnia to http://vi-server.org/vi/0001-fs-Introduce-sync-enable-flag.patch .

Vi.
źródło
Ale teraz muszę tymczasowo wyłączyć fsync / fdatasync i wszystkie inne rzeczy ...
Vi.
1
w tym momencie wydaje się, że jesteś głęboko na terytorium SO
Journeyman Geek