On Tue, Feb 23, 2021 at 2:51 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > On Fri, Feb 19, 2021, David Edmondson wrote: > > If the VM entry/exit controls for loading/saving MSR_EFER are either > > not available (an older processor or explicitly disabled) or not > > used (host and guest values are the same), reading GUEST_IA32_EFER > > from the VMCS returns an inaccurate value. > > > > Because of this, in dump_vmcs() don't use GUEST_IA32_EFER to decide > > whether to print the PDPTRs - do so if the EPT is in use and CR4.PAE > > is set. > > This isn't necessarily correct either. In a way, it's less correct as PDPTRs > are more likely to be printed when they shouldn't, assuming most guests are > 64-bit guests. It's annoying to calculate the effective guest EFER, but so > awful that it's worth risking confusion over PDTPRs. I still prefer a dump_vmcs that always dumps every VMCS field. But if you really want to skip printing the PDPTEs when they're irrelevant, can't you just use the "IA-32e mode guest" VM-entry control as a proxy for EFER.LMA?