Originariamente inviato da
alucard28
Tutto dipende da come una persona vuole che sia il suo cellulare.....
Posso spiegarti come funziona il governor e come funzionano i parametri e se vuoi ti passo la mia configurazione......
(Per esempio io il Nightmare lo uso anche in sleep mode
)
Il governor ragiona per carico su singolo core (in base al parametro inc_cpu_load e dec_cpu_load)
Quando il carico di un carico di ogni singolo core e' >= alla inc_cpu_load il core aumenta la frequenza in base al (carico x il la frequenza minima)
+ (freq_step per la frequenza minima) - (freq_up_brake * la frequenza minima)
N.B se la frequenza attuale del singolo core è inferiore al valore del campo freq_for_responsiveness allora inc_cpu_load è uguale a inc_cpu_load_at_min_freq)
Quando il carico del core scende al di sotto del valore di dec_cpu_load il core diminuisce di frequenza in base a:
((100 - carico attuale cpu ) * frequenza minima) + (freq_step_dec * frequenza minima).
Ora, a cosa servono sampling_rate, sampling_up_factor,sampling_down_factor??
sampling_rate identifica una sorta di tempo dopo il quale la cpu decide se attivare o disattivare il secondo core(questi parametri te li spiego sotto) o aumentare o diminuire la frequenza.
Piu è grande questo valore e più tempo la cpu ci mette a decidere cosa fare.
sampling_up_factor non fa altro che raddoppiare il valore del sampling_rate se la frequenza deve aumentare,
mentre ovviamente sampling_down_factor il contrario.
N.B. dato che ragiona per singolo core, se una cpu deve salire di frequenza e l'altra deve scendere il fattore per il quale viene moltiplicato il sampling_rate è la media dei valori sampling_up_factor e di sampling_down_factor incluso la virgola
.
Es: se sampling_up_factor = 1,sampling_down_factor = 2 e sampling_rate = 60000 il calcolo del tempo medio è 60000 x 1.5.
Ora parliamo del cpu_up_rate,cpu_down_rate, e hotplug_compare_level......
Come decide la cpu se deve attivare o disattivare il secondo core?
La cpu memorizza i valori di RQ,di FREQUENZA media, della media della percentuale di carico dei due core in ogni pagina di un quaderno che ha 40 pagine.(History)
(Scusa il gioco di parole e l'esempio ma cosi mi riesce meglio spiegartelo),
Ora, la cpu per sapere se deve attivare il secondo core, controlla se il modulo di (numero pagina con i valori,cpu_up_rate) da resto zero.
ES. se imposti cpu_up_rate = 10 la cpu controlla 4 volte, ovvero quando è arrivato a scrivere pagina 10, perchè 10/10 da resto zero,
quando è arrivato a pagina 20, perchè 20/10 da resto zero ..... e cosi via fino ad arrivare a 40, punto nel quale il quaderno viene cancellato e si riparte da zero.
Nel caso si verificasse questa condizione procede come segue:
1) prende il minimo della media della frequenza scritta fino ad arrivare al momento in cui controlla.
2) stessa cosa del punto 1 ma con la media dei carichi RQ.
3) stessa cosa del punto 1 ma con la media della percentuale dei carichi dei due core.
se il minimo dell media della frequenza (punto 1) è >= al valore di hotplug_freq_1_1 e il minimo della media dei carichi RQ(punto 2) è >= hotplug_rq_1_1) o
il minimo della media della percentuale di carico(punto 3) risulta > del valore di up_avg_load...... allora decide di attivare il secondo core se non risulta già attivo.
Ora per decidere se disattivare il secondo core fa la stessa cosa ma i valori che entrano in gioco sono cpu_down_rate,hotplug_freq_2_0,hotplug_rq_2_0 e down_avg_load
ed il controllo si verificano se risultano <= dei valori sopra descritti.
E' lunghissima non ce la faccio più
(scherzo)......
A cosa serve il parametro hotplug_compare_level?
Bene se rimane a default(History Load Based) i controlli per attivare o disattivare il secondo core sono in base a quanto(modalità e valori) descritto sopra,
altrimenti se è valorizzato come (Current Load Based) si base sui valori correnti descritti sopra(Ovvero gli ultimi che ha scritto prima di fare il controllo).
NB. Ognuno può giocare modificando i valori che ti ho descritto e vedere che effetto hanno sulla cpu,batteria,reattività
.
BENE
Ho finito, non so se mi sono spiegato bene e se hai capito cmq ora ti scrivo i miei settings: (è un mix tra reattività e batteria.)