On Tue, 19 Mar 2024 11:11:11 +0800, Tao Su wrote: > Intel MKTME repurposes several high bits of physical address as 'keyID', > so boot_cpu_data.x86_phys_bits doesn't hold physical address bits reported > by CPUID anymore. > > If guest.MAXPHYADDR < host.MAXPHYADDR, the bit field of ‘keyID’ belongs > to reserved bits in guest’s view, so intercepting #PF to fix error code > is necessary, just replace boot_cpu_data.x86_phys_bits with > kvm_get_shadow_phys_bits() to fix. > > [...] Applied to kvm-x86 fixes, with a massaged shortlog/changelog. Note, I don't love using kvm_get_shadow_phys_bits(), but only because doing CPUID every time is so pointlessly suboptimal. I have a series to clean up all of the related code, which I'll hopefully post later this week. But I didn't see any reason to hold up this fix, as I really hope no one is using allow_smaller_maxphyaddr in a nested VM with EPT enabled, which is the only case where CPUID is likely to have a meaningful impact (due to causing a VM-Exit). [1/1] KVM: x86: Fix the condition of #PF interception caused by MKTME https://github.com/kvm-x86/linux/commit/7f2817ef52a1 -- https://github.com/kvm-x86/linux/tree/next