1

Temat: Skalowanie procesora w Openwrt x86-64

Witam chciał bym się dowiedzieć czy jest możliwość regulowania/skalowania szybkością taktowania procesora w openwrt?

Chodzi o to że uruchomiłem openwrt na laptopie ( compal fl90) i procesor ( C2D T5750) używa cały czas swojej maksymalnej częstotliwości 2000MHz przez co się grzeje i wiatrak musi go non stop chłodzić.

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

2

Odp: Skalowanie procesora w Openwrt x86-64

Musisz skompilować sobie, z wbudowanymi w kernelu odpowiednimi pakietami i ustawieniami polityki. W OpenWrt chyba żaden moduł od skalowania zegara nie został do tej pory przerobiony na pakiet.

Na apu1x z OpenWrt na kernelu 3.18.x działa.

3

Odp: Skalowanie procesora w Openwrt x86-64

Ach kompilacja...
Mógł byś podpowiedzieć nazwy pakietów? co dodać a co wywalić?

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

4

Odp: Skalowanie procesora w Openwrt x86-64

Heinz napisał/a:

Ach kompilacja...
Mógł byś podpowiedzieć nazwy pakietów? co dodać a co wywalić?

No właśnie nie pakiety... "make kernel_menuconfig" i tam musisz poszukać "CPU Frequency scaling" (o ile mnie pamięć nie myli). Może zależeć od innych ustawień/modułów więc musisz poszukać.

5

Odp: Skalowanie procesora w Openwrt x86-64

OK zaczynam działać. Mam nadzieję że wyjdzie kompilacja a nie komplikacja smile

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

6

Odp: Skalowanie procesora w Openwrt x86-64

A tak w ogóle to jak wytłumaczyć fakt, że na maszynie wirtualnej TEN OBRAZ chodzi bez zarzutu?
użycie cpu 0.0 - 0.5%

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

7

Odp: Skalowanie procesora w Openwrt x86-64

mar_w napisał/a:

A tak w ogóle to jak wytłumaczyć fakt, że na maszynie wirtualnej TEN OBRAZ chodzi bez zarzutu?
użycie cpu 0.0 - 0.5%

Temat jest o skalowaniu zegara, nie wykorzystaniu CPU.

8

Odp: Skalowanie procesora w Openwrt x86-64

pepe2k napisał/a:
mar_w napisał/a:

A tak w ogóle to jak wytłumaczyć fakt, że na maszynie wirtualnej TEN OBRAZ chodzi bez zarzutu?
użycie cpu 0.0 - 0.5%

Temat jest o skalowaniu zegara, nie wykorzystaniu CPU.

Zapytałem tylko z ciekawości. Zawsze myślałem, że skoro procesor chodzi non stop na maksymalnej częstotliwości to jednocześnie wykorzystanie cpu sięga 100%.
Ale skoro nie można tego ze sobą wiązać to grzecznie przyjmuję to do wiadomości.
A tak swoją drogą na miejscu kolegi @Heinz spróbowałbym zwykłej wersji x86/generic.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

9

Odp: Skalowanie procesora w Openwrt x86-64

Wersję generic testowałem i tak zachowuje się to podobnie. Czy jest jakieś polecenie/program pod openwrt który wskaże aktualną prędkość procesora?

To dla mnie taka testowa zabawa, nie będzie to router tylko nas + www. Nie interesuje mnie rozwiązanie typu "openmediavault", bo to armata na muchy.

Narazie coś skompilowałem jednak nie potrafię sprawdzić czy to działa tak jak powinno. ( na windowsie wiatrak schodził na niższe obroty a nawet się wyłączał, może winą jest też brak sterownika do grafiki?)

W konfiguracji kernela jest możliwość zmiany ustawień CPU Frequency scaling, Domyślnie jest to włączone jednak wybrana jest opcja "Performance" a mnie by bardziej interesowała opcja "on demand"
Dodatkowa wada kompilacji swojej wersji to wymuszenie kompilacji modułów do wszystkiego czego potrzebuję. Łatwo nie będzie.

Kolejna sprawa to że wprowadziłem tylko tą drobną zmianę ( performance na ondemand) to kompiluje mi się kernel 3.18.20, a wersja rc3 jest na kernelu 3.18.17

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

10

Odp: Skalowanie procesora w Openwrt x86-64

Bo .20 jest aktualnie w CC. Będzie rc4 to będzie na .20

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Skalowanie procesora w Openwrt x86-64

Masz jakiś pomysł żeby sprawdzić czy to skalowanie działa?

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

12

Odp: Skalowanie procesora w Openwrt x86-64

cpufrequtils musiał byś sobie przekompilować.

cat /sys/devices/system/cpu/*/cpufreq/cpuinfo_cur_freq

Powinno też dać takie info.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez mar_w 2015-08-31 10:58:41)

Odp: Skalowanie procesora w Openwrt x86-64

Temat bardzo ciekawy i interesujący. Niestety ale skalowanie nie działa z domyślną zmianą CPU Frequency scaling. Jako komputer testowy został użyty Asus F5 z procem C2D P8400. Odpalone zostały 2 obrazy z domyślnymi ustawieniami: Powersave oraz Performance.
Jedyna niezauważalna różnica po wydaniu komendy:
* dla trybu Powersave

 #cat /proc/cpuinfo
(...)
cpu MHz:  2266.572
(...)

* dla trybu Performance

 #cat /proc/cpuinfo
(...)
cpu MHz:  2266.800
(...)

Temperatury (bo o to chyba najbardziej chodziło autorowi tematu) były takie same w obu trybach (użycie procesora max 0.5%):

# sensor-detect <ENTER> <ENTER>....<ENTER>
# sensors
(...)
Core 0:  +55.0 C
Core 1:  +56.0 C
(...)

A jeśli chodzi o prędkość wiatraka i temperatury to oczywiście są jeszcze większe, jeżeli damy mu coś do roboty, tak żeby użycie procesora wzrosło powyżej 50% to szybciutko dochodzi do 70-75 C.
Obrazy na których robiłem testy to
POWERSAVE
PERFORMANCE

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

14

Odp: Skalowanie procesora w Openwrt x86-64

Już miałem nie próbować ale skusiłem się na test Twojej wersji powersave.
U mnie jest znaczna różnica:

dell powersave
root@OpenWrt:/# cat /proc/cpuinfo
...
model name      : Intel(R) Atom(TM) CPU  230   @ 1.60GHz
...
cpu MHz         : 199.999


OpenSSL 1.0.2d 9 Jul 2015
...
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5                448.26k     1578.52k     4690.35k     9376.77k    13164.54k
sha1               454.84k     1524.54k     4072.71k     7217.14k     9185.96k
des cbc           1429.27k     1618.50k     1684.72k     1709.40k     1712.13k
des ede3           604.65k      636.42k      635.82k      636.93k      636.85k
aes-128 cbc       1900.82k     2549.92k     2733.48k     2757.97k     2771.63k
aes-192 cbc       1884.88k     2179.26k     2290.09k     2333.01k     2337.85k
aes-256 cbc       1526.26k     1905.66k     1907.80k     1910.44k     1911.47k
sha256             636.22k     1519.69k     2788.78k     3531.78k     3768.32k
sha512             443.90k     1782.98k     2909.67k     4244.98k     4893.28k
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.114545s 0.003628s      8.7    275.6
                  sign    verify    sign/s verify/s
dsa 2048 bits 0.036765s 0.043712s     27.2     22.9



Dell performance:
model name      : Intel(R) Atom(TM) CPU  230   @ 1.60GHz
cpu MHz         : 1597.096

OpenSSL 1.0.2d 9 Jul 2015
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5               9801.95k    34438.14k   101150.72k   197452.80k   273787.56k
sha1             12293.69k    38104.49k    93046.24k   145088.85k   173924.35k
des cbc          15827.62k    16551.45k    16780.37k    16843.78k    16856.41k
des ede3          5876.36k     5998.12k     6027.61k     6038.87k     6037.50k
aes-128 cbc      24082.77k    26790.06k    27808.43k    28093.44k    28153.17k
aes-192 cbc      20228.40k    22407.72k    23180.71k    23394.65k    23437.31k
aes-256 cbc      17747.73k    19240.13k    19711.32k    19839.32k    19865.60k
sha256           14847.05k    35046.53k    62988.37k    79213.57k    85557.25k
sha512            9934.44k    39357.46k    65428.22k    94905.00k   109352.28k
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.014124s 0.000434s     70.8   2306.0
                  sign    verify    sign/s verify/s
dsa 2048 bits 0.004372s 0.005376s    228.7    186.0





Compal powersave:
model name      : Intel(R) Core(TM)2 Duo CPU     T5800  @ 2.00GHz
cpu MHz         : 250.000

OpenSSL 1.0.2d 9 Jul 2015
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5               3298.98k    10783.38k    27521.28k    45485.06k    56338.49k
sha1              3394.16k    10887.06k    26497.71k    41374.72k    49699.96k
des cbc           5872.54k     6034.73k     6118.49k     6164.82k     6211.13k
des ede3          2262.50k     2295.45k     2311.85k     2314.58k     2318.34k
aes-128 cbc       8874.51k     9918.14k    10089.73k    20428.12k    20834.99k
aes-192 cbc       7451.58k     8203.31k     8423.08k    17167.02k    17367.04k
aes-256 cbc       6573.34k     7069.10k     7245.74k    14755.16k    14948.35k
sha256            4142.51k     9563.78k    16343.64k    20407.98k    22039.21k
sha512            3077.84k    12393.13k    19238.06k    26864.64k    30736.38k
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.021481s 0.000680s     46.6   1470.3
                  sign    verify    sign/s verify/s
dsa 2048 bits 0.006880s 0.008423s    145.3    118.7




compal perf:

model name      : Intel(R) Core(TM)2 Duo CPU     T5800  @ 2.00GHz
cpu MHz         : 1995.191

OpenSSL 1.0.2d 9 Jul 2015
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5              24219.81k    80351.10k   195171.07k   302854.14k   363943.25k
sha1             26293.62k    82936.96k   191306.75k   280336.04k   323766.95k
des cbc          38821.72k    39926.55k    40153.69k    40227.50k    40260.95k
des ede3         15374.29k    15526.08k    15600.90k    15614.63k    15583.91k
aes-128 cbc      58794.92k    64822.40k    66791.00k   137705.47k   140126.89k
aes-192 cbc      50147.70k    54172.18k    55873.16k   117050.03k   118188.71k
aes-256 cbc      43427.44k    47025.34k    48092.67k   100228.44k   101441.54k
sha256           24558.84k    58612.99k   105852.42k   133083.82k   144326.66k
sha512           18220.09k    72730.28k   121627.99k   174472.19k   199674.54k
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.003180s 0.000100s    314.5  10027.5
                  sign    verify    sign/s verify/s
dsa 2048 bits 0.001026s 0.001232s    974.2    811.8

Jak widać różnica w wydajności jest dość duża ( około 15% z pełnej wydajności)


Dał byś radę zrobić wersję z ondemand lub conservative?
Bo te moje to wychodzą tylko komplikacje.

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

15

Odp: Skalowanie procesora w Openwrt x86-64

Ciekawe czemu u mnie nie działa? Windows tak się nie grzeje na biegu jałowym.
szkoda, że nie sprawdziłeś temperatur po 20 min bezczynności. Chyba, że nie wykrył Ci czujników....

Coś tam smażę, ale musiałem wrzucić na 1 rdzeń bo pruł się o jakieś (niby nie zaznaczone) moduły.
Trudność w kompilacji x86 polega na tym, że to platforma o szerokiej gamie sprzętu i dopasowanie obrazu pod wszystkich, wymaga szerokiej wiedzy (której nie mam smile ) więc kolejny obraz będzie bardziej nadmuchany (być może nawet zbędnymi rzeczami).

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

16 (edytowany przez mar_w 2015-08-31 10:37:07)

Odp: Skalowanie procesora w Openwrt x86-64

CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
ONDEMAND

CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
KONSERWA smile

Ja już przyzwyczaiłem się do tego, że u wszystkich wszystko chodzi, a mnie nie chodzi....
W procesorach jescze można wybrać czy ma być Atom czy może Core2Duo jako osobne opcje. Ten obraz ma domyślne Generic x86_64.
I jeszcze się łudzę, że  może trafię coś dla Siebie.....

EDIT: dodałem do obrazów openssl-utils smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

17

Odp: Skalowanie procesora w Openwrt x86-64

Jestem teraz po testach wersji ondemand.
System pracuje cały czas na pełnych obrotach
Można go przełączyć na powersave komendą:

echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo powersave > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Po wysłaniu ondemand lub  conservative wchodzi odrazu tryb performance.

Pobawiłem się jeszcze w sprawdzenie poboru energii elektrycznej:
Dla Compal FL90:
sam zasilacz: 89mA
zasilacz podłączony do laptopa ( laptop nie włączony): 95mA
idle performance: 160-165mA temp 52'
idle powersave: 152-157mA 49'
Dziwna sprawa jest jeśli mam jeden rdzeń ustawiony na performance a drugi na powersave: 145-147mA temp 40'
mogę też wyłączyć drugi rdzeń poleceniem:

echo 0 > /sys/devices/system/cpu/cpu1/online

pobór prądu wtedy spada do około 140mA a temperatura 39'

Aktualna temperatura w pokoju to 28,3'

Można sterować też szybkością procesora ( na każdy rdzeń/wątek osobno) poleceniem:

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

lista dostępnych częstotliwości za pomocą polecenia:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

Dla C2D T5800:
250000 500000 750000 1000000 1250000 1500000 1750000 2000000

Wybranie częstotliwości:

echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

Ciekawe czemu nie działa automatyczne sterowanie.

Później sprawdzę jak to zachowuje się na atomie.

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

18

Odp: Skalowanie procesora w Openwrt x86-64

Dzięki za pomocne komendy. Sprawdziłem też na DUŻYM linux-ie i mój zakres to 1600 - 2260 MHz więc ogólnie szału nie ma.
U Ciebie można zbić częstotliwość 8-mio krotnie i to już jest coś, ale przełożenia w temperaturach prawie nie widać.
A w sumie to było końcowym celem tego wątku.....

Ciekawe czemu nie działa automatyczne sterowanie.

Patrzyłeś czy obrazy z openwrt.org mają wkompilowane (poza domyślnym performance) inne tryby?
Bo ja teraz nie mam jak sprawdzić.

Trochę powłączałem innych opcji przy kompilacji i może któraś z nich coś miesza w ondemand.
Pozostałe tryby jawnie określają typ pracy, więc z nimi nie ma problemu......

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

19

Odp: Skalowanie procesora w Openwrt x86-64

mar_w napisał/a:

(...)
Trochę powłączałem innych opcji przy kompilacji i może któraś z nich coś miesza w ondemand.
Pozostałe tryby jawnie określają typ pracy, więc z nimi nie ma problemu......

Bo żeby to w pełni działało jak oczekujesz jest jeszcze potrzebne:
1) pełne wsparcie ze strony systemu
2) dodatkowe oprogramowanie działające w jądrze w tzw. przestrzeni użytkownika
Wbrew pozorom nie jest to tylko zwykła rekompilacja jądra z zaznaczeniem odpowiednich sterów/funkcji...
Ogólnie openwrt tego nie wspiera/nie ma zaimplemetowane. Zagadnienie jest nietrywialne i nie łatwo wszytko do kupy ustawić, i.t.d.

20 (edytowany przez pepe2k 2015-09-01 08:31:43)

Odp: Skalowanie procesora w Openwrt x86-64

build000 napisał/a:

Wbrew pozorom nie jest to tylko zwykła rekompilacja jądra z zaznaczeniem odpowiednich sterów/funkcji...

Jest.
https://wiki.archlinux.org/index.php/CP … cy_scaling
https://www.kernel.org/doc/Documentatio … ernors.txt

21

Odp: Skalowanie procesora w Openwrt x86-64

No ok - samo skalowanie tak - ale przecież wiadomo, że nie jest to celem samym w sobie...to tylko środek do wielu celów (chociażby to czego szukają/oczekują przedmówcy) - a do tego bez współgrania wszystkiego, włącznie z systemem, nie da się ogarnąć prostą rekompilacją jajka.

22

Odp: Skalowanie procesora w Openwrt x86-64

build000 napisał/a:

No ok - samo skalowanie tak - ale przecież wiadomo, że nie jest to celem samym w sobie...to tylko środek do wielu celów (chociażby to czego szukają/oczekują przedmówcy) - a do tego bez współgrania wszystkiego, włącznie z systemem, nie da się ogarnąć prostą rekompilacją jajka.

Pełna obsługa skalowania zegara CPU, ze wszystkimi typami polityk jest zaimplementowana w kernelu. Nie ma żadnej potrzeby używania dodatkowego oprogramowania żeby to uruchomić i używać.

23 (edytowany przez build000 2015-09-01 20:15:28)

Odp: Skalowanie procesora w Openwrt x86-64

Pobożne życzenia - w praktyce to tak nie działa - szczególnie nie działa w openwrt...
Ogólnie może i się kompiluje, i działa, ale efekt jest mizerny jeżeli chodzi o to czego oczekujemy po tym rozwiązaniu - jak pisałem, brak kooperacji ze strony systemu - niweluje to teoretyczne oszczędności na prądzie, zużyciu elementów (np. procek) na skutek niepotrzebnego "piecykowania", i.t.d.

24

Odp: Skalowanie procesora w Openwrt x86-64

build000 napisał/a:

Pobożne życzenia - w praktyce to tak nie działa - szczególnie nie działa w openwrt...
Ogólnie może i się kompiluje i działa, ale efekt jest mizerny jeżeli chodzi o to czego oczekujemy po tym rozwiązaniu.

Działa, w praktyce, na OpenWrt. I pisałem o tym nawet w tym wątku.

25 (edytowany przez build000 2015-09-01 20:21:30)

Odp: Skalowanie procesora w Openwrt x86-64

Cóż - mamy widocznie odmienne zdanie w tym temacie i oczekiwania co do słowa "działa"... wink
Jeżeli chodzi o "działa" - to owszem, działa to bardzo wydajnie, bo jest pełna obsługa zarówno softu jak i sprzętu, ale na komputerze stacjonarnym typu PC z zasilaczem modularnym, wielofazową polityką zasilania różnych komponentów w kompie - tak, tu można śmiało określić, że "działa" i są wymierne efekty...