Zarządzanie energią w linuksie – pliki (3)

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
  • w pliku tym są umieszczone czestotliwości z jakimi może pracować procesor. Wartości podane są w kHz.
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    2501000 2500000 2000000 1600000 1200000 80000

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
  • w pliku tym są umieszczone polityki jakimi może się kierować kernel podczas zarządzania energią. Mogą to być:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    conservative ondemand userspace powersave performance

  • conservative – częstotliwość CPU jest zwiększana, gdy jest na to zapotrzebowanie i zmniejszana, gdy system nie jest obciążony. Polityka ta jest podobna do ondemand, ale z tą różnicą, że ondemand lepiej się sprawuje, gdy komputer jest podłączony do zasilania, a conservative lepiej się sprawuje, gdy komputer chodzi na baterii. Różnica ta polega na tym, że przy użyciu tej polityki procesor wolniej wskakuje na wyższe częstotliwości i szybciej zmniejsza częstotliwość, gdy system nie potrzebuje większej mocy. Najniższą częstotliwość na jaką może wskoczyć procesor jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq, natomiast najwyższą częstotliwość na jaką może wskoczyć procesor jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq. Kernel będzie zmieniał częstotliwość skokowo używając częstotliwości dostępnych w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
  • ondemand – częstotliwość CPU jest zwiększana, gdy jest na to zapotrzebowanie i zmniejszana, gdy system nie jest obciążony. Polityka ta jest podobna do conservative, ale z tą różnicą, że ondemand lepiej się sprawuje, gdy komputer jest podłączony do zasilania, a conservative lepiej się sprawuje, gdy komputer chodzi na baterii. Różnica ta polega na tym, że przy użyciu tej polityki procesor szybciej wskakuje na wyższe częstotliwości i wolniej zmniejsza częstotliwość, gdy system nie potrzebuje większej mocy. Najniższą częstotliwość na jaką może wskoczyć procesor jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq, natomiast najwyższą częstotliwość na jaką może wskoczyć procesor jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq. Kernel będzie zmieniał częstotliwość skokowo używając częstotliwości dostępnych w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
  • userspace – ta opcja mówi kernelowi, że to użytkownik chce decydować o zarządzaniu energią. Dzięki tej opcji, użytkownik lub dowolny program może samemu ustalić częstotliwość (częstotliwość ta jest ustawiona na sztywno i nie zmienia się) z jaką ma pracować procesor. Najniższą częstotliwość jaką można ustawić jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq, natomiast najwyższą częstotliwość jaką można ustawić jest ustalona w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq. Częstotliwości które można użyć są dostępne w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
  • powersave – kernel ustawia najniższą z dostępnych częstotliwości i nie zmienia jej przez cały czas, gdy ta polityka jest wybrana. Wartość ta pobierana jest z pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  • performance – kernel ustawia najwyższą z dostępnych częstotliwości i nie zmienia jej przez cały czas, gdy ta polityka jest wybrana. Wartość ta pobierana jest z pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
  • plik ten zawiera informację o częstotliwości z jaką powinien pracować procesor. Wartość ta może się zmieniać automatycznie, gdy wybrane są następujące polityki: ondemand lub conservative. Wartość tą ustawia kernel na podstawie wybranej polityki. Rzeczywista częstotliwość może się różnić od tej podanej w tym pliku. Rzeczywista wartość zapisana jest w pliku cpuinfo_cur_freq
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

    800000

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  • opcja która ustawia maksymalną dozwoloną częstotliwość z jaką może pracować procesor. Wartość z tego pliku będzie się tyczyła wszystkich trybów (włącznie z polityką performance). Wartość z tego pliku w przypadku polityki ondemand i conservative będzie oznaczała, że kernel nie wskoczy na maksymalną dozwoloną częstotliwość procesora, tylko na częstotliwość podaną w tym pliku. W sytuacji, gdy użytkownik spróbuje ręcznie ustawić (w przypadku polityki userspace) wyższą częstotliwość niż ustawiona w tym pliku, to częstotliwość podana przez użytkownika zostanie zignorowana i ustawiona zostanie częstotliwość podana w powyższym pliku. Plik ten spełnia podwójną rolę. Jedna jest to rola informacyjna, czyli można zobaczyć jaka jest ustawiona maksymalna częstotliwość jaką można użyć, a także spełnia rolę sterującą, czyli można zapisać do tego pliku maksymalną częstotliwość z jaką chcemy, żeby pracował procesor.
  • Wyświetlenie maksymalnej dozwolonej częstotliwości:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    1600000

  • Ustawienie maksymalnej dozwolonej częstotliwości:
  • echo “2500000” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  • opcja która ustawia minimalną dozwoloną częstotliwość z jaką może pracować procesor. Wartość z tego pliku będzie się tyczyła wszystkich trybów (włącznie z polityką powersave). Wartość z tego pliku w przypadku polityki ondemand i conservative będzie oznaczała, że kernel nie wskoczy na minimalną dozwoloną częstotliwość procesora, tylko na częstotliwość podaną w tym pliku. W sytuacji, gdy użytkownik spróbuje ręcznie ustawić (w przypadku polityki userspace) niższą częstotliwość niż ustawiona w tym pliku, to częstotliwość podana przez użytkownika zostanie zignorowana i ustawiona zostanie częstotliwość podana w powyższym pliku. Plik ten spełnia podwójną rolę. Jedna jest to rola informacyjna, czyli można zobaczyć jaka jest ustawiona minimalna częstotliwość jaką można użyć, a także spełnia rolę sterującą, czyli można zapisać do tego pliku minimalną częstotliwość z jaką chcemy, żeby pracował procesor
  • Wyświetlenie minimalnej dozwolonej częstotliwości:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    1600000

  • Ustawienie minimalnej dozwolonej częstotliwości:
  • echo “1200000” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  • plik w którym ustawia się politykę którą ma się kierować kernel podczas zarządzania energią. Oprócz ustawiania, można także wyświetlić, jaka polityka obecnie jest ustawiona. Dostępne polityki można pobrać z pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors.
  • Wyświetlenie obecnie ustawionej polityki:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    conservative

  • Ustawienie polityki:
  • echo “ondemand” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

  • /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
  • plik ten odpowiada za ręczne ustawienie częstotliwości procesora. Modyfikacja tego pliku możliwa jest tylko wtedy, gdy w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ustawi się politykę na userspace. Dzięki tej polityce, użytkownik lub dowolny program może samodzielnie sterować częstotliwością procesora bez udziału kernela. Gdy użytkownik będzie próbował zmienić wartość w tym pliku, pomimo ustawienia polityki innej niż userspace, to system zwróci błąd i zmiana nie zostanie wprowadzona. Oprócz ustawiania, można także wyświetlić, jaka jest obecnie ustawiona częstotliwość procesora (gdy ustawiona jest polityka userspace), lub tekst <unsupported>, gdy ustawiona jest polityka inna niż userspace. Wartość w tym pliku nie może być większa niż wartość z pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq i nie może być mniejsza niż wartość z pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq. Dodatkowo, w tym pliku mogą znajdować się tylko wartości dostępne w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies. Gdy spróbuje się ustawić wartości inne niż są dostępne w pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies, to system ustawi częstotliwość najbliższą podanej, zaokrąglając w górę.
  • Wyświetlenie ustawionej częstotliwości (polityka: userspace):
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    1200000

  • Wyświetlenie ustawionej częstotliwości (polityka inna niż userspace):
  • cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    <unsupported>

  • Ustawienie częstotliwości (polityka userspace):
  • echo “1200000” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

  • Ustawienie częstotliwości (polityka inna niż userspace):
  • echo “1200000” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    bash: echo: write error: Invalid argument

  • /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
  • w pliku tym jest zapisana informacja o aktualnej częstotliwości procesora. Ta informacja pobierana jest ze sprzętu i wskazuje rzeczywistą prędkość procesora, a nie częstotliwość jaka powinna być (/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq). Wartość w tym pliku może się zmieniać automatycznie, gdy ustawiona jest polityka ondemand lub conservative.
  • Wyświetlenie aktualnej (rzeczywistej) częstotliwości procesora:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
    1200000

  • /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
  • Wyświetlenie minimalnej częstotliwości z jaką może pracować procesor. Wartość ta pobierana jest ze sprzętu i nie można jej zmieniac, jak ma to miejsce w przypadku pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq. Niezależnie od ustawień w innych plikach, nie można ustawić niższej częstotliwości niż jest podana w tym pliku.
  • Wyświetlenie minimalnej częstotliwości z jaką może pracować procesor:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
    800000

  • /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
  • Wyświetlenie maksymalnej częstotliwości z jaką może pracować procesor. Wartość ta pobierana jest ze sprzętu i nie można jej zmieniac, jak ma to miejsce w przypadku pliku /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq. Niezależnie od ustawień w innych plikach, nie można ustawić wyższej częstotliwości niż jest podana w tym pliku.
  • Wyświetlenie maksymalnej częstotliwości z jaką może pracować procesor:
  • cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
    2500000

This entry was posted in Zarządzanie energią and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

four × 3 =