C9s: CPU ISA Level Lower Than Required
Hello. I had a CentOS Stream 9 installation in a KVM VM. Today a “dnf upgrade” lead to an unusable system: dnf, rpm commands complain that “glibc cpu does not support x86-64-v2” or “CPU ISA level is lower than required”. The updates leading to this state seem to be: python3 3.9.10-1, glibc
2.34-21, rpm 4.16.1.3-10
What happened?
Thanks, A.
9 thoughts on - C9s: CPU ISA Level Lower Than Required
glibc-2.34-20 includes a fix to more reliable detect CPU compatibility. See Bug https://bugzilla.redhat.com/show_bug.cgi?id 40657
Does your CPU support x86-64-v2?
CentOS Stream for AMD and Intel 64-bit architectures requires at least x86-64-v2. See [1] for some background.
[1]:
https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#architectural_considerations_for_rhel_9
The KVM version I’m using doesn’t support that? Could it be?
However I was able to install CentOS Stream 9 from the ISO in this VM. So it wasn’t supposed to work?
Thanks, A.
Possible. What is your configured KVM CPU model?
A first step might be to check the output of /proc/cpuinfo in your VM.
Just to be sure, the host CPU does support x86-64-v2?
I do not know when/how the checks for x86-64-v2 are done.
Is there an easy way to figure out if a CPU does support x86-64-v2?
Something like a list of CPU families or a list of flags to check?
Regards, Simon
Once upon a time, Simon Matter said:
Run “/lib64/ld-linux-x86-64.so.2 –help” – the output should include:
************************************************************************
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
************************************************************************
So for example, the system I ran this on is -v3, but not -v4.
If this method [0] is correct, the host CPU supports x86-64-v2, x86-64-
v3 and x86-64-v4
While inside the VM, the result is “CPU supports x86-64-v1”
[0]
https://itectec.com/unixlinux/how-to-check-if-the-cpu-supports-x86-64-v2/
Thanks, A.
In this case your VM is misconfigured. Please check your configured KVM
CPU model. A list of all CPU models and support x86-64 levels can be found here:
https://qemu-project.gitlab.io/qemu/system/qemu-cpu-models.html
Oh, well, it was plain “kvm64”. Selecting “Nehalem”, “SandyBridge” or
“Westmere”, it works.
Thanks, A.
If you plan to live-migrate VMs from host to host, selecting a specific CPU which is the oldest generation CPU among the possible hosts which will run the VM is a good idea. Otherwise, you should probably select the option to copy the host CPU for best performance. If you don’t do that, you’re unnecessarily restricting guests from using features present in the host CPU.