According to the spec, the TRUE* MSRs are only necessary if bit 55 of VMX_BASIC is on. Since we don't set this bit, we don't need to provide these MSRs... So probably we shouldn't.
Reply-To: jan.kiszka@siemens.com On 2013-02-25 15:04, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=54471 > > Summary: nVMX: TRUE* MSRs unnecessary > Product: Virtualization > Version: unspecified > Platform: All > OS/Version: Linux > Tree: Mainline > Status: NEW > Severity: enhancement > Priority: P1 > Component: kvm > AssignedTo: virtualization_kvm@kernel-bugs.osdl.org > ReportedBy: nyh@math.technion.ac.il > Regression: No > > > According to the spec, the TRUE* MSRs are only necessary if bit 55 of > VMX_BASIC > is on. Since we don't set this bit, we don't need to provide these MSRs... > So probably we shouldn't. I tend to say we should (i.e. set bit 55) as there is the risk that buggy guests could needlessly get confused when we expose very recent features (like EPT) and do not provide such "old-fashioned" stuff. Jan
TRUE_* is needed to tell the guest that it can disable CR3 load/store exits. We were enabling this control by exposing a broken MSR_IA32_VMX_PROCBASED_CTLS value, but commit 560b7ee12ca5 (KVM: nVMX: Fix returned value of MSR_IA32_VMX_PROCBASED_CTLS, 2014-06-16). So we can no longer remove the TRUE_* MSRs.