
Recientemente actualicé a Ubuntu 22.04 LTS y vi que había opciones de energía. Sin embargo, el modo de rendimiento no está disponible.
No puedo obtener los mismos puntajes de rendimiento y de referencia que obtengo en el arranque dual de Windows. Creo que esta es la razón.
Entonces revisé el regulador de potencia y dice acpi-cpufreq
. Revisé mi grub cfg y dice intel_pstate=enable
. Tuve el mismo problema con Ubuntu 20.04, pensé que tal vez fuera un problema con el kernel, pero incluso con el nuevo kernel, todavía no funciona.
[ 0.062414] Kernel command line: BOOT_IMAGE=/vmlinuz-5.15.0-47-generic root=UUID=9103868b-6caf-4c46-95b9-05f6bb5b8e94 ro intel_pstate=enable quiet splash vt.handoff=7
[ 0.453038] intel_pstate: CPU model not supported
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
acpi-cpufreq
$ uname -r
5.15.0-47-generic
$ grep -i pstate /boot/config-$(uname -r)
CONFIG_X86_INTEL_PSTATE=y
$ grep intel_pstate /boot/grub/grub.cfg
linux /vmlinuz-5.15.0-47-generic root=UUID=xxxxx ro intel_pstate=enable quiet splash $vt_handoff
$ cat /sys/devices/system/cpu/cpufreq/boost
1
$ ls /sys/devices/system/cpu/intel_pstate/
no such file or directory
$ cpufreq-info
..snip..
analyzing CPU 15:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 15
CPUs which need to have their frequency coordinated by software: 15
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.30 GHz
available frequency steps: 2.30 GHz, 2.30 GHz, 2.20 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 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, schedutil
current policy: frequency should be within 800 MHz and 2.30 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 997 MHz.
cpufreq stats: 2.30 GHz:1,62%, 2.30 GHz:0,13%, 2.20 GHz:0,25%, 2.10 GHz:0,17%, 2.00 GHz:0,27%, 1.90 GHz:0,31%, 1.80 GHz:0,29%, 1.70 GHz:0,54%, 1.50 GHz:0,73%, 1.40 GHz:0,72%, 1.30 GHz:0,96%, 1.20 GHz:1,33%, 1.10 GHz:3,17%, 1000 MHz:6,38%, 900 MHz:18,62%, 800 MHz:64,50% (30660)
$ lscpu
..snip..
Model name: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
CPU family: 6
Model: 141
..snip..
Frequency boost: enabled
CPU max MHz: 2301,0000
CPU min MHz: 800,0000
BogoMIPS: 4608.00
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mc
a cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss
ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art
arch_perfmon pebs bts rep_good nopl xtopology nonstop_
tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes6
4 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr p
dcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline
_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefe
tch cpuid_fault epb cat_l2 invpcid_single cdp_l2 ssbd i
brs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriori
ty ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep b
mi2 erms invpcid rdt_a avx512f avx512dq rdseed adx smap
avx512ifma clflushopt clwb intel_pt avx512cd sha_ni av
x512bw avx512vl xsaveopt xsavec xgetbv1 xsaves split_lo
ck_detect dtherm ida arat pln pts avx512vbmi umip pku o
spke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx5
12_bitalg avx512_vpopcntdq rdpid movdiri movdir64b fsrm
avx512_vp2intersect md_clear flush_l1d arch_capabiliti
es
Además, cuando busco en Google el modelo de CPU e intel_pstate, puedo ver algunas publicaciones en el foro con la misma CPU y controlador/gobernador(?) que intel_pstate, por lo que probablemente sea compatible.
Me preguntaba qué pasos podría seguir para solucionar o solucionar este problema. ¡Gracias!
ps mi dispositivo es una computadora portátil
Respuesta1
Durante el arranque, recibe el mensaje del kernel:
[ 0.453038] intel_pstate: CPU model not supported
Porque:
- El control HWP (HardWare Pstate), también conocido como tecnología Intel Speed Shift (que no debe confundirse con Intel Speed Step), está deshabilitado en el BIOS.
- Parece haber un error en el código fuente del controlador de escalado de frecuencia de CPU intel_pstate que no permite el uso del controlador con HWP deshabilitado para la familia Tiger Lake de procesadores Intel y posiblemente para otras familias.
Para una prueba de verificación en mi servidor de prueba 20.04.4 con un Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz
procesador Comet Lake, comenté la línea que incluye esa familia en la ruta sin código HWP:
doug@s19:~/kernel/linux$ git diff
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 57cdb3679885..3cbc1abb9911 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -2414,7 +2414,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
X86_MATCH(ATOM_GOLDMONT, core_funcs),
X86_MATCH(ATOM_GOLDMONT_PLUS, core_funcs),
X86_MATCH(SKYLAKE_X, core_funcs),
- X86_MATCH(COMETLAKE, core_funcs),
+/* X86_MATCH(COMETLAKE, core_funcs), */
X86_MATCH(ICELAKE_X, core_funcs),
{}
};
Para el kernel no modificado obtuve:
- HWP configurado en
auto
oenabled
en BIOS dio como resultado elintel_pstate
controlador de escala de frecuencia de la CPU. - HWP configurado
disabled
en el BIOS dio como resultado elintel_cpufreq
controlador de escala de frecuencia de la CPU. (Tenga en cuenta que elintel_cpufreq
controlador es solo elintel_pstate
controlador en modo pasivo, que es el predeterminado ahora cuando HWP no está disponible. Consulte tambiénaquí.)
Para el kernel modificado obtuve:
- HWP configurado en
auto
oenabled
en BIOS dio como resultado elintel_pstate
controlador de escala de frecuencia de la CPU. - HWP configurado
disabled
en el BIOS dio como resultado elacpi_cpufreq
controlador de escala de frecuencia de la CPU.
La lista de familias de procesadores para la rama sin código HWP parece bastante incompleta. En el caso de esta pregunta, el número de modelo es 141 o 0X8D o TIGERSLAKE:
./arch/x86/include/asm/intel-family.h:#define INTEL_FAM6_TIGERLAKE 0x8D /* Willow Cove */
Entonces el parche de código sugerido sería:
doug@s19:~/kernel/linux$ doug@s19:~/kernel/linux$ git diff
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 57cdb3679885..fc3ebeb0bbe5 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -2416,6 +2416,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
X86_MATCH(SKYLAKE_X, core_funcs),
X86_MATCH(COMETLAKE, core_funcs),
X86_MATCH(ICELAKE_X, core_funcs),
+ X86_MATCH(TIGERLAKE, core_funcs),
{}
};
MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);
Por cierto, el regulador de escala de frecuencia de CPU de rendimiento está disponible para el regulador de escala de frecuencia de CPU acpi-cpufreq. Sólo haz esto:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Y luego compruébalo:
doug@s19:~/kernel/linux$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu10/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu11/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu5/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu6/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu7/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu8/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu9/cpufreq/scaling_governor:performance