On 06/13/2018 11:28 AM, Sean Christopherson wrote: > Tangentially related, I think we should expose INVPCID even when PCID > is not enabled in the guest. vmx_compute_secondary_exec_control() > disables INVPCID when PCID is disabled, but there is actually a use > case for INVPCID without PCID, e.g. __native_flush_tlb_global() in > the Linux kernel uses the global variant instead of toggling CR4.PGE > regardless of whether PCID is enabled/supported. Is it actually legal for a CPU to have support for INVPCID and not have support for PCIDs? I believe that the code already supports INVPCID if guest PCIDs are supported but disabled (via CR4.PCIDE=0). But having CPUID report INVPCID support and not report PCID support would seem rather strange, even if it is technically legal. > + skip_emulated_instruction(vcpu); > + return 1; > These should all be "return kvm_skip_emulated_instruction(vcpu)". Thanks for catching that. I failed to notice the change when porting over the patches from an older kernel. Thanks, Junaid