KVM: Performance Dip, 32-Bit Support Debate

The nucleus of Linux 6.13-RC3 has accepted a change, addressing the regression of performance in the KVM hypervisor. This regression was related to slow processing CAPUID calls on new CPUs, such as the Intel Emerald Rapids, where CPUID operations were significantly slower compared to the Intel Skylake CPUs. This led to decreased productivity in the KVM hypervisor, affecting tasks involving CPUID operations. A patch has been introduced to reduce the time taken for CPUID operations, even for CPUs in the Skylake family, by implementing CPUID caching.

In the upcoming Linux 6.14 nucleus, a full version of the solution will be represented. There is also a discussion in the Linux kernel developers’ list regarding the discontinuation of support for 32-bit systems in the KVM hypervisor. Initially, a patch was proposed to remove support for KVM virtualization on the X86-32 platform, but concerns were raised about the usefulness of X86-32 support for testing host-mode on 32-bit systems. As a result, another patch was introduced to eliminate support for all 32-bit systems in KVM.

The decision to phase out 32-bit system support is based on the minimal usage of virtual machines on mass 32-bit ARM processors like the ARM Cortex A7. Such systems had their support removed in 2020 without objections, highlighting the rarity of their use cases. The remaining 32-bit systems affected by the patch include older platforms like Intel Core Duo/Silverthorne, PowerPC E300/E500/E600, and MIPS P5600. The patch is currently published as RFC, open for discussion in the developer community.

/Reports, release notes, official announcements.