On Mon, Feb 07, 2022 at 06:34:19PM +0000, Sean Christopherson wrote: > On Mon, Feb 07, 2022, Oliver Upton wrote: > > Until recently, this all sort of 'worked'. Since we called > > kvm_update_cpuid() all the time it was possible for KVM to overwrite the > > bits after the MSR write, just not immediately so. After the whole CPUID > > rework, we only update the VMX control MSRs immediately after a > > KVM_SET_CPUID2, meaning we've missed the case of MSR write after CPUID. > > That needs to be explained in the changelog (ditto for patch 02), and arguably > the Fixes tag is wrong too, or at least incomplete. The commit that truly broke > things was > > aedbaf4f6afd ("KVM: x86: Extract kvm_update_cpuid_runtime() from kvm_update_cpuid()") > > I'm guessing this is why Paolo is also confused. Without understanding that KVM > used too (eventually) enforce its overrides, it looks like you're proposing an > arbitrary, unnecessary ABI change. Gah, sorry, I really didn't provide the full context on this. I chose to blame the original commits for these since it was still possible to write the MSR and avoid a KVM update (just looking for paths where kvm_update_cpuid() is not called), but agree that full breakage came from the above commit. I'll add some language discussing how commit aedbaf4f6afd ("KVM: x86: Extract kvm_update_cpuid_runtime() from kvm_update_cpuid()") fully broke this. -- Thanks, Oliver