Il ridimensionamento della frequenza della CPU Ubuntu 13.04 è "bloccato" sulla frequenza più bassa


10

Ho appena installato Ubuntu 13.04 sul mio MacBook Air, dopo aver giocato per un po 'la macchina sembrava molto lenta, quindi ho verificato la frequenza della CPU. cpufreq-info, riporta 800MHz su tutti e 4 i core (che è l'impostazione più bassa). Il governatore è impostato su ondemand. Ora, quando metto un po 'di carico sul sistema (eseguendo un piccolo script che esegue l'hashing per quattro volte) la macchina si blocca, ma cpufreq-info sta ancora riportando 800MHz. Posso impostare manualmente la frequenza su 2 GHz, il che risolve il problema delle prestazioni, ma mi costerà la mia batteria.

Questo è l'output di cpufreq-info:

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:5,75%, 2.00 GHz:0,47%, 1.90 GHz:0,00%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:93,67%  (1388)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:3,17%, 2.00 GHz:0,01%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,00%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:96,71%  (1433)
analyzing CPU 2:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:2,69%, 2.00 GHz:0,00%, 1.90 GHz:0,01%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,02%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,02%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:97,16%  (1194)
analyzing CPU 3:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:3,07%, 2.00 GHz:0,02%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,03%, 1000 MHz:0,03%, 900 MHz:0,01%, 800 MHz:96,77%  (1004)

Risposte:


4

Ho avuto lo stesso problema sull'ultima versione di Mint, impostare il ridimensionamento su conservativo sembrava essere il più vicino a come funzionava ondemand.

Poi ho scoperto qual era il problema, l'up_threshold era troppo alto, era impostato al 95% di carico, ora va bene per i carichi continui, ma nella maggior parte dei casi c'è un piccolo scoppio di attività della CPU e vuoi la CPU ridimensionare al 100% della velocità molto più velocemente. Ho risolto questo impostando su up_threshold inferiore (75 sembra fare bene nel mio caso). Lo si modifica facendo eco al valore desiderato in /sys/devices/system/cpu/cpufreq/ondemand/up_threshold.


2

Suggerirei di utilizzare Esiste un'applicazione di risparmio energetico simile a Giove?

E usa indicatore-cpufreq, in modo da sapere a quale frequenza sei. controlla il link che ho incollato su come installare / configurare indicatore-cpufreq

Esiste un'applicazione per il risparmio energetico simile a Giove? Sezione 3.) Processore e ridimensionamento di frequenza

ondemand        Dynamically switch between CPU(s) available if at 95% cpu load

Mantenere la CPU a un livello basso, superare solo se con carico della cpu del 95%

performance     Run the cpu at max frequency

conservative    Dynamically switch between CPU(s) available if at 75% load

Mantenere la CPU a un livello basso, superare solo se con carico della CPU del 75%

powersave       Run the cpu at the minimum frequency

0

Ho avuto questo problema il 14.04 - 16.04 (ad oggi). Per risolverlo ho dovuto costringere Ubuntu a ignorare il limite del bios. Per me ha funzionato:

Open grub:

sudo vim /etc/default/grub

Sostituisci riga GRUB_CMDLINE_LINUX_DEFAULT:

- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable processor.ignore_ppc=1"

Aggiorna grub:

sudo update-grub

Riavvia quindi:

echo 1 | sudo dd of=/sys/module/processor/parameters/ignore_ppc
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq 

Ha funzionato per me. Controlla il numero di core della CPU e aggiorna tutto di conseguenza. Potresti voler mettere quelle righe extra in /etc/rc.local in modo che vengano eseguite ad ogni avvio.

Modifica ninja: sostituisci 2900000 sopra con il valore in:

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

Il ridimensionamento di frequenza funzionava bene dopo questo, le temperature e le prestazioni erano uguali o migliori? E leggi e /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freqpoi riscrivi lo stesso valore? Perché? Scrivere 1 per ignore_ppcmodificare i valori? (PS potrebbe usare teeo semplicemente >invece di dd)
Xen2050
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.