Compilazione Kernel - CPU Frequency Scaling
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- scartozzo
- Packager

- Messaggi: 254
- Iscritto il: mar 8 feb 2005, 0:00
- Nome Cognome: Flavio Gallucci
- Kernel: 3.19
- Desktop: fluxbox
- Distribuzione: ScarTOzzoLinux
- Località: Torino
Compilazione Kernel - CPU Frequency Scaling
Ho un notebook e al fine di ottimizzare l'uso della batteria vorrei impostare i parametri del kernel in modo appropriato.
In "Default CPUFreq governor mi da due possibilità:
1) performance
2) userspace
e nelle righe successive inserisce
'performance' governor
'powersave' governor
'userspace' governor for userspace frequency scaling
'ondemand' cpu policy governor
'conservative' cpufreq governor
IGNORO:
1) la relazione tra "Default CPUFreq ..." e le scelte delle righe successive.
2) Vorrei attivare il powersave o il conservative (mi pare d'aver capito che sono la scelta migliore per il portatile)
3) Come faccio in ogni caso a regolare successivemente la frequenza della CPU (ammesso che sia necessario)?
In "Default CPUFreq governor mi da due possibilità:
1) performance
2) userspace
e nelle righe successive inserisce
'performance' governor
'powersave' governor
'userspace' governor for userspace frequency scaling
'ondemand' cpu policy governor
'conservative' cpufreq governor
IGNORO:
1) la relazione tra "Default CPUFreq ..." e le scelte delle righe successive.
2) Vorrei attivare il powersave o il conservative (mi pare d'aver capito che sono la scelta migliore per il portatile)
3) Come faccio in ogni caso a regolare successivemente la frequenza della CPU (ammesso che sia necessario)?
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
Default indica lo stato della cpu di...default, cioè se la mia cpu ha due frequenze di scaling, settando la modalità userspace come default, all'avvio del pc la mia cpu girerà alla frequenza più bassa, con performance alla frequenza più alta.
Gli altri governor puoi metterli pure tutti se ti va:
'performance' vedi sopra
'powersave' tiene la cpu sempre a regimi minimi
'ondemand' e 'conservetive' gestiscono la cpu in base alle esigenze del momento.
Puoi cambiare lo stato nella dir /sys/devices/system/cpu/cpu0/cpufreq/ o da kde con la comoda utility presente
Gli altri governor puoi metterli pure tutti se ti va:
'performance' vedi sopra
'powersave' tiene la cpu sempre a regimi minimi
'ondemand' e 'conservetive' gestiscono la cpu in base alle esigenze del momento.
Puoi cambiare lo stato nella dir /sys/devices/system/cpu/cpu0/cpufreq/ o da kde con la comoda utility presente
- castcarlitos
- Linux 0.x

- Messaggi: 67
- Iscritto il: mar 20 apr 2004, 0:00
- Slackware: current
- Località: Bergamo
- Contatta:
No, default indica il governor della cpu che viene utilizzato di... default. Ovviamente, quando il sistema parte, la cpu deve avere un governor... quella voce indica quello di defautl, che può essere cambiato ad avviamento avvenuto...

Powersave = minima frequenza CPU possibile sempre dovunque e comunque
Userspace = la frequenza CPU può essere modificata a piacere in user-space, con appositi software o scrivendo in un file in /sys/... (ora non ricordo);
Ondemand = "su richiesta" la frequenza si modifica in funzione delle richieste..
Conservetive = cerca di mantenere la frequenza della CPU il più in basso possibile, compatibilmente con il lavoro da svolgere...
Io sul mio laptop uso come default performance se alimentato, ondemand a betterie fino al 20% di carica residua e poi passa a powersave e dopo si spegne
Guarda ad esempio l'applet di kde che ti viene mostrata nel pannello riguardante lo stato delle batterie/alimentazione, li puoi impostare i tuoi valori, tra cui il governor :P
Ho un P4 3200MHz che ha 8 throttling states, uno ogni 400MHz; percui il min è proprio 400MHz... Quando gira così i lavori che puoi fare sono veramente pochi....
Bye
Gli stati di frequenza attraverso i quali una cpu può passare sono molti più di due... Normalmente sono ben otto...cioè se la mia cpu ha due frequenze di scaling,
Performance = max frequenza CPU possibile sempre dovunque e comunque'performance' vedi sopra
'powersave' tiene la cpu sempre a regimi minimi
'ondemand' e 'conservetive' gestiscono la cpu in base alle esigenze del momento.
Powersave = minima frequenza CPU possibile sempre dovunque e comunque
Userspace = la frequenza CPU può essere modificata a piacere in user-space, con appositi software o scrivendo in un file in /sys/... (ora non ricordo);
Ondemand = "su richiesta" la frequenza si modifica in funzione delle richieste..
Conservetive = cerca di mantenere la frequenza della CPU il più in basso possibile, compatibilmente con il lavoro da svolgere...
Io sul mio laptop uso come default performance se alimentato, ondemand a betterie fino al 20% di carica residua e poi passa a powersave e dopo si spegne
Ho un P4 3200MHz che ha 8 throttling states, uno ogni 400MHz; percui il min è proprio 400MHz... Quando gira così i lavori che puoi fare sono veramente pochi....
Bye
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
Mi sono espresso male, ma volevo dire questocastcarlitos ha scritto:No, default indica il governor della cpu che viene utilizzato di... default. Ovviamente, quando il sistema parte, la cpu deve avere un governor... quella voce indica quello di defautl, che può essere cambiato ad avviamento avvenuto...
Con slamd64 e un turion la mia cpu lavora solo a due frequenzecastcarlitos ha scritto:Gli stati di frequenza attraverso i quali una cpu può passare sono molti più di due... Normalmente sono ben otto...cioè se la mia cpu ha due frequenze di scaling,
Mi potresti spiegare un pò meglio questa cosa? Mi servirebbe molto poter scalare verso il basso la mia cpu. Graziecastcarlitos ha scritto:Userspace = la frequenza CPU può essere modificata a piacere in user-space, con appositi software o scrivendo in un file in /sys/... (ora non ricordo);
- castcarlitos
- Linux 0.x

- Messaggi: 67
- Iscritto il: mar 20 apr 2004, 0:00
- Slackware: current
- Località: Bergamo
- Contatta:
Io Slamd l'ho instalata solo un paio di volte e ho avuto sempre un po' di problemi... Comunque la distro non influisce, è ilkernel che gestisce ovviamente il frequency scaling...Con slamd64 e un turion la mia cpu lavora solo a due frequenze
Prova a guardare qui:
Codice: Seleziona tutto
/sys/devices/system/cpu/cpu0/cpufreq/ I files che trovi sono ben descritti dal nome... Comunque per controllare quanti stati di scaling possiede la tua cpu guarda:
Codice: Seleziona tutto
scaling_available_frequenciesCodice: Seleziona tutto
scaling_available_governorsCodice: Seleziona tutto
#echo "NOME_GOVERNOR" > scaling_governorCodice: Seleziona tutto
#echo "FREQUENZA_VOLUTA" > scaling_setspeedad esempio:
Codice: Seleziona tutto
#echo 2800000 > scaling_setspeedSpero di essere stato chiaro
Bye
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
Ok. Questa roba ormai la conosco a memoria, il problema è che lo scaling_setspeed non prende valori inferiori a 800000, probabilmente perchè sto utilizzando le specifiche per athlon64, peccato non ci siano per il turioncastcarlitos ha scritto:Io Slamd l'ho instalata solo un paio di volte e ho avuto sempre un po' di problemi... Comunque la distro non influisce, è ilkernel che gestisce ovviamente il frequency scaling...Con slamd64 e un turion la mia cpu lavora solo a due frequenze
Prova a guardare qui:
(se hai 2 cpu (tipo HT o dual-core) quella di riferimento è la 0)Codice: Seleziona tutto
/sys/devices/system/cpu/cpu0/cpufreq/
I files che trovi sono ben descritti dal nome... Comunque per controllare quanti stati di scaling possiede la tua cpu guarda:
invece per sapere i governor che hai:Codice: Seleziona tutto
scaling_available_frequencies
Per modivicare il governor in uso puoi utilizzare una semplicissima istruzione:Codice: Seleziona tutto
scaling_available_governors
se impostato su User-space allora puoi eseguire:Codice: Seleziona tutto
#echo "NOME_GOVERNOR" > scaling_governor
Dove "FREQUENZA_VOLUTA" deve essere una frequenza listata nel file: scaling_available_frequenciesCodice: Seleziona tutto
#echo "FREQUENZA_VOLUTA" > scaling_setspeed
ad esempio:Come software da utilizzare in userspace, invece di compiere queste operazioni a mano, non ne conosco molti, ho utilizzato qualche volta gkrellm2 con l'apposito plug-in per il frequency scaling...Codice: Seleziona tutto
#echo 2800000 > scaling_setspeed
Spero di essere stato chiaro
Bye
- airex
- Linux 1.x

- Messaggi: 121
- Iscritto il: sab 8 lug 2006, 11:03
- Slackware: -current
- Desktop: xfce
- Distribuzione: Slackware64
- Località: Milano
- Contatta:
i vari lvielli di ferquenza (e relativi voltaggi) permessi sono cablati nel kernel /usr/src/linux/arch/tua_arch/kernel/cpu/cpufreq/file_tuo_tipo_scaling
io sul mio centrino ho messo mano al file speedstep-centrino.c andando a variare le tensioni operative ma si puo' anche modificare il numero/valore dei diversi livelli energetici; per funzionare poi si deve, in fase di compilazione del kernel, indicare di non rispettare per forza le specifiche acpi della casa.
bisogna comunque stare attenti e andaer a piccoli passi
io sul mio centrino ho messo mano al file speedstep-centrino.c andando a variare le tensioni operative ma si puo' anche modificare il numero/valore dei diversi livelli energetici; per funzionare poi si deve, in fase di compilazione del kernel, indicare di non rispettare per forza le specifiche acpi della casa.
bisogna comunque stare attenti e andaer a piccoli passi
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
airex ha scritto:i vari lvielli di ferquenza (e relativi voltaggi) permessi sono cablati nel kernel /usr/src/linux/arch/tua_arch/kernel/cpu/cpufreq/file_tuo_tipo_scaling
io sul mio centrino ho messo mano al file speedstep-centrino.c andando a variare le tensioni operative ma si puo' anche modificare il numero/valore dei diversi livelli energetici; per funzionare poi si deve, in fase di compilazione del kernel, indicare di non rispettare per forza le specifiche acpi della casa.
bisogna comunque stare attenti e andaer a piccoli passi
GRANDISSSSIMO!!!!
Questa sera lo proverò sicuramente. L'opzione di non rispettare le specifiche acpi dove la trovo?
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
- prometeo79
- Linux 4.x

- Messaggi: 1278
- Iscritto il: gio 17 mar 2005, 0:00
- Slackware: 12
- Località: Torino
Ok. Ce l'ho
devo modificare la riga relativa al /* Return a frequency in MHz, given an input fid */ ?
Codice: Seleziona tutto
static int cpu_family = CPU_OPTERON;
#ifndef CONFIG_SMP
static cpumask_t cpu_core_map[1];
#endif
/* Return a frequency in MHz, given an input fid */
static u32 find_freq_from_fid(u32 fid)
{
return 800 + (fid * 100);
}
/* Return a frequency in KHz, given an input fid */
static u32 find_khz_freq_from_fid(u32 fid)
{
return 1000 * find_freq_from_fid(fid);
}
/* Return a frequency in MHz, given an input fid and did */
static u32 find_freq_from_fiddid(u32 fid, u32 did)
{
return 100 * (fid + 0x10) >> did;
}
static u32 find_khz_freq_from_fiddid(u32 fid, u32 did)
{
return 1000 * find_freq_from_fiddid(fid, did);