Hello,

first of all the most modern CPU in the last 10 years (I gues) use so
called speed-stepping.

As I can see I was wondering why that speed stepping is not set in a KVM
guest, even if I use "host-passthrough" in the cpu config of the guest.

virsh dumpxml almalinux | grep -i cpu
  <vcpu placement='static'>2</vcpu>
  <cpu mode='host-passthrough' check='none' migratable='on'/>

The cpu on the "host" is:

root@q2:~# lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   36 bits physical, 48 bits virtual
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           76
Model name:                      Intel(R) Celeron(R) CPU  N3160  @ 1.60GHz
Stepping:                        4
CPU MHz:                         480.096
CPU max MHz:                     2240.0000
CPU min MHz:                     480.0000
BogoMIPS:                        3200.00
Virtualization:                  VT-x
L1d cache:                       96 KiB
L1i cache:                       128 KiB
L2 cache:                        2 MiB
NUMA node0 CPU(s):               0-3
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Vulnerable: Clear CPU buffers
attempted, no microcode; SMT disabled
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers
and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline,
STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic
sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
tm pbe syscall nx rdtsc
                                 p lm constant_tsc arch_perfmon pebs bts
rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf
tsc_known_freq pni pclmulqdq d
                                 tes64 monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand
lahf_lm 3dnowprefetch epb
                                  pti tpr_shadow vnmi flexpriority ept
vpid tsc_adjust smep erms dtherm ida arat
root@q2:~#

So the max cpu speed should be 2240 MHz.

On the guest it is:

[root@almalinux ~]# lscpu
Architektur:             x86_64
CPU Operationsmodus:     32-bit, 64-bit
Byte-Reihenfolge:        Little Endian
CPU(s):                  2
Liste der Online-CPU(s): 0,1
Thread(s) pro Kern:      1
Kern(e) pro Socket:      1
Sockel:                  2
NUMA-Knoten:             1
Anbieterkennung:         GenuineIntel
BIOS Vendor ID:          QEMU
Prozessorfamilie:        6
Modell:                  76
Modellname:              Intel(R) Celeron(R) CPU  N3160  @ 1.60GHz
BIOS Model name:         pc-i440fx-3.1
Stepping:                4
CPU MHz:                 1600.000
BogoMIPS:                3200.00
Virtualisierung:         VT-x
Hypervisor-Anbieter:     KVM
Virtualisierungstyp:     voll
L1d Cache:               32K
L1i Cache:               32K
L2 Cache:                4096K
L3 Cache:                16384K
NUMA-Knoten0 CPU(s):     0,1
Markierungen:            fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx
rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid
tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pdcm sse4_1 sse4_2 x2apic
movbe popcnt tsc_deadline_timer aes rdrand hypervisor lahf_lm
3dnowprefetch cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
tsc_adjust smep erms arat umip arch_capabilities

So I can't use the 2240 MHz in the guest.
When I set the cpu governor to "performance" on the host, it doesn't
matter. The host only see 1600 MHz.

What's wrong there and how should I fix this?

Reply via email to