Linux 6.13-rc3 fixes expensive CPUID handling on Sapphire Rapids CPUs — an issue resulting in Skylake CPUs being 4X faster for CPUID-related updates

Intel Granite Rapids Xeon 6900P
(Image credit: Intel)

The Linux team has published an intermediate Linux 6.13-rc3 to fix a "hilarious" bug in the kernel-based Virtual Machine code — Phoronix reports, where CPUID updates are taking significantly longer time to be processed on Sapphire Rapids CPUs than they should be, resulting in much older Skylake CPUs being up to 4X faster in regards to CPUID cost.

Phoronix reveals that Google engineers originally discovered this technical issue in how Sapphire Rapids processes CPUID information in nested VMs. Specifically, Google's Sean Christopherson states, "On Intel's Emerald Rapids, CPUID is *wildly* expensive, to the point where recomputing XSAVE offsets and sizes results in a 4x increase in latency of nested VM-Enter and VM-Exit (nested transitions can trigger xstate_required_size() multiple times per transition), relative to using cached values. The issue is easily visible by running `perf top` while triggering nested transitions: kvm_update_cpuid_runtime() shows up at a whopping 50%..."

TOPICS
Aaron Klotz
Contributing Writer

Aaron Klotz is a contributing writer for Tom’s Hardware, covering news related to computer hardware such as CPUs, and graphics cards.