Estou em um laptop Acer com um processador Intel i7-4710HQ, que tem clock nominal de 2,50 GHz / passa para 3,50 GHz com turbo boost. Assim que eu puder executar turbostat
após inicializar ou fazer uma suspensão / retomada, ele reportará Bzy_MHz
próximo o suficiente para valores nominais:
Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
- - 392 11.42 3436 2503
0 0 151 4.49 3353 2504
0 1 67 1.99 3340 2504
1 2 96 2.84 3366 2504
1 3 175 5.22 3350 2504
2 4 105 3.14 3349 2504
2 5 81 2.43 3322 2504
3 6 46 1.38 3333 2504
3 7 2419 70.03 3453 2496
No entanto, isso cai para 800 MHz em torno de 40 segundos depois:
Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
- - 8 1.01 798 2493
0 0 12 1.55 798 2493
0 1 1 0.16 800 2493
1 2 21 2.65 798 2493
1 3 9 1.11 798 2493
2 4 15 1.84 798 2493
2 5 1 0.08 797 2493
3 6 3 0.40 798 2493
3 7 2 0.29 798 2493
Não está representado aqui, mas isso persiste quando eu carrego a CPU. Fazer uma suspensão e reiniciar ou uma reinicialização traz a freqüência de volta por mais 40 segundos ou mais. A queda ocorre normalmente em 40-45 segundos, mas às vezes até 50 segundos após a inicialização / retomada.
Para referência, aqui está (parte de) a saída de cpufreq-info
: (a saída é idêntica para as outras CPUs, das quais existem 7)
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.50 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 3.50 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.
E de lscpu
:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Stepping: 3
CPU MHz: 800.097
BogoMIPS: 4988.66
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
rdmsr
fornece um valor de 8 para o registrador 0x19a. Isso é verdade antes e depois da freqüência da CPU cair. (Usar wrmsr
para definir 0, antes ou depois da queda da frequência, não afeta o comportamento.)
As informações que você viu foram geradas enquanto eu estava executando intel_pstate
. No entanto, desabilitar isso na inicialização (tal que cpufreq-info
relatórios usando o driver acpi_cpufreq
) não afeta o comportamento. A configuração processor.ignore_ppc=1
também não afeta o comportamento.
Eu já estou usando o governador de desempenho. Alterar scaling_min_freq
não afeta o comportamento. O comportamento é o mesmo, quer eu esteja conectado com o carregamento da bateria ou apenas com bateria.
Eu normalmente não observo uma temperatura acima de 70 graus C, e em vários testes a temperatura ficou estável em cerca de 65 graus para cada núcleo quando a frequência cai.
Atualize com as informações solicitadas:
rdmsr --bitfield 15:8 -d -a 0x198
fornece 33 para todas as CPUs após o reinício e cai para 8 quando a frequência cai.
rdmsr --bitfield 15:8 -d -a 0x199
fornece 35 para todas as CPUs após o reinício e não muda quando a frequência cai.
grep . /sys/devices/system/cpu/intel_pstate/*
(após a queda):
/sys/devices/system/cpu/intel_pstate/max_perf_pct:100
/sys/devices/system/cpu/intel_pstate/min_perf_pct:100
/sys/devices/system/cpu/intel_pstate/no_turbo:0
grep . /sys/devices/system/cpu/cpu0/cpufreq/*
(após a queda):
/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus:0
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq:800000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq:3500000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq:800000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency:4294967295
/sys/devices/system/cpu/cpu0/cpufreq/related_cpus:0
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors:performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:800000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver:intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq:3500000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq:800000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed:<unsupported>
Todos foram obtidos com a CPU carregada.