Mismatch between capabilities report and starting a VM regarding to scalable TSC
Software environment
- Operating system:
$ cat /etc/redhat-release
Red Hat Enterprise Linux CoreOS release 4.7
- Architecture:
x86_64
- kernel version:
$ uname -a
Linux worker-perf52 4.18.0-240.15.1.el8_3.x86_64 #1 SMP Wed Feb 3 03:12:15 EST 2021 x86_64 x86_64 x86_64 GNU/Linux
- libvirt version:
libvirtd (libvirt) 7.0.0
- Hypervisor and version:
qemu-kvm-5.2.0-15.fc32
Description of problem
This is a KubeVirt environemnt (a kubevirt developer preview build with the TSC handling) installed on OpenShift. Therefore the slightly weird version reports.
We try to calculate a cluster-wide minimum TSC frequency when nodes have scalable TSC. For that we use the capabilities check from libvirt. The capability check returns the TSC timer as scalable, but libvirt later on says that it is not scalable.
Steps to reproduce
- The capability check reveals
<counter name="tsc" frequency="2693671000" scaling="yes"/>
- We try to start libvirt with this tsc frequency: 1995312000 3.I get
server error. command SyncVMI failed: "LibvirtError(Code=67, Domain=10, Message=''unsupported configuration: Requested TSC frequency 1995312000 Hz is outside tolerance range ([2692997583, 2694344417] Hz) around host frequency 2693671000 Hz and TSC scaling is not supported by the host CPU'')"
Maybe I misinterpret what the scaling
element in the capability discovery means but it looks like this could be a potential bug.