Stralci di vita da ingegnere…

Maggio 26, 2008

CPU policies optimizations

Archiviato in: Uncategorized — pixxx @ 9:54 pm

Attenzione gente, son tornato! Penso sia ora di introdurre qualche argomento tennico nel blog, giusto per dare giustizia al titolo del blog stesso.

Mi trovavo a vagare nella mia orrenda Kubuntu, (che a breve sostituirò con una qualche distro più decente, magari meno user-friendly, ma pulita e ben fatta – ci sarà un post a suo tempo), quando mi sono letteralmente rotto le palle della ventolina del pc. Accidenti, rimane praticamente sempre accesa!!

Diedi la colpa a qualche montagna di pattume che si sarà accumulato nel tempo all’interno del sistema di dissipazione, e tentando (invano) di pulire (cazzo di HP, serve uno speleologo per smontare il case) ho realizzato che il problema poteva essere SOFTWARE. Ebbene si, avete audito bene, e il problema è esattamente la policy che segue il governor della CPU in Hardy Heron.

Dunque, non so prima come funzionasse, non mi ero posto il problema, ma quando avevo l’intramontabile Slackware ci avevo messo mano per ottimizzare, e ho scoperto tante cose che riassumo di seguito.

Il kernel fornisce dei governor per gestire il cpu-scaling dei processori, i governor sono diciamo 4: POWERSAVE, PERFORMANCE, ONDEMAND e CONSERVATIVE.

POWERSAVE: setta la frequenza minima del procio, sempre

PERFORMANCE: setta sempre la massima

ONDEMAND: a seconda del cpu-load modifica la frequenza del procio per venire incontro ad eventuali richieste di ulteriore potenza dalle applicazioni

CONSERVATIVE: il mio preferito, simile al precendente, fornisce un “motore inerziale” allo scaling delle frequenze, in sintesi evita di scalare inutilmente quando si hanno picchi locali di load, evitando di sprecare energia (si può elasticamente pensare anche ai benefici in down-scaling)

Ebbene, usando il mio adorato KDE (3,5 mi raccomando!! il 4 benchè figo NON VA ANCORA!! e poi è lento… qt 4.4 un paio di palle!) ho installato un’app che si chiama Kpowersave, che gestisce dei profili di utilizzo e setta le policy della cpu in base ad essi. Ecco, ho messo l’impostazione DYNAMIC, e guardando in

root@pix-book:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand

ho capito il problema, ma girovagando ovunque sembra non si possa settare il conservative tramite Kpowersave, se non a manina.

L’ultima spiaggia è stata spulciare il file di configurazione

vim /etc/kde3/kpowersaverc

Alla riga

cpuFreqDynamicPerformance
c’è un valore n che penso di poter interpretare come 100% – n% = percentuale di cpu-load in cui il governor ONDEMAND deve fare l’upscaling della frequenza allo step successivo. Ecco, io ho forse esagerato e ho messo 15, penso che un valore sensato sia 25-30 e nel mio caso significa “se la cpu non raggiunge l’85% del carico, non fare l’upscaling”.

E’ una figata!! Le prestazioni non ne risentono, perchè se serve potenza, il load aumenta oltre l’85% e il governor innalza la frequenza, se no mi tengo il procio a cuccia a 1Ghz! Non ho realizzato lo stesso comportamento del conservative, ma il risultato mi esalta parecchio! Lo consiglio a tutti, anche perchè non c’è nulla da perdere e l’intervento è banale.

Chi ha dubbi chieda e gli sarà risposto! Potrei linkare un po’ di bibliografia per capire la teoria che ci sta sotto, ma confido che anche voi siate seguaci praticanti del quasi beato S. Google :)

3 Commenti »

  1. Beh post carino, io pero’ mi chiedo sempre il modo per fare sto genere di cose con demoni/utility che non siano esattamente parte del DE, metti che io uso per dire fluxbox.. il kpowersaverc mi serve a poco.
    Comunque ho voluto commentare il post piu’ che altro per riferirmi al primissimo paragrafo, dove si parla di distribuzioni decenti, ecco IMHO potrsti provare gentoo ;)
    Puoi vederla come una slackware che ti automatizza le cose che su slack devi fare a manina, risparmiandoti un sacco di tempo ma mantenendo quello stile bello pulito, assolutamente constraint-free e BSD-like che ci piace tanto!

    Ciauz :)

    Commento di print pack qw/H* 736869/ — Luglio 7, 2008 @ 11:20 am

  2. togliendo il fatto che gentoo “asciuga i coglioni”, come disse un famoso e pluriosannato saggio, io devo mettere sabayon!!

    beh, tornando in topic, ho detto kpowersave perchè suppongo che ogni utente intelligente usi kde, ma volendo essere più plastici si può usare il validissimo CPUfreqd, che usavo (ovviamente) sulla slack! è esageratamente più configurabile e fatto meglio, ma non ha un’interfaccia grafica, e pecca di dinamicità

    Commento di pixxx — Luglio 7, 2008 @ 11:26 am

  3. Beh ovviamente concordo sul fatto che ogni utente sano di mente usi KDE, ma il bello di avere tante scelte e’ che qualcuno potrebbe non usare esattamente cio’ che usi tu!
    Inoltre devo dire che “esageratamente piu’ configurabile” e “fatto meglio” sono qualita’ decisamente superiori a “non ha un’interfaccia grafica”, della quale ce ne si puo’ altamente sbattere :P
    La prossima domanda che ti faro’ quindi e’ del tipo: ma se io sono sano di mente e ho KDE ma preferisco CPUfreqd, i due come convivono?

    Saluti!
    ps. e comunque questo nick non e’ offuscato, si capise subito cosa fa!

    Commento di print pack qw/H* 736869/ — Luglio 7, 2008 @ 11:32 am


RSS feed dei commenti a questo articolo. TrackBack URI

Lascia un commento

Blog su WordPress.com.