Messages in this thread | | | Subject | Re: [PATCH v2] KVM: nVMX: expose VPID capability to L1 | From | Wanpeng Li <> | Date | Tue, 29 Sep 2015 19:05:07 +0800 |
| |
On 9/29/15 6:39 PM, Paolo Bonzini wrote: > On 29/09/2015 04:55, Wanpeng Li wrote: >> Expose VPID capability to L1. >> >> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com> >> --- >> v1 -> v2: >> * set only VMX_VPID_EXTENT_GLOBAL_CONTEXT_BIT > Thanks. I've checked more thoroughly your implementation against the > SDM now, and there are a few missing things between this patch and the > one that emulates INVVPID: > > - you're not setting bit 32 of the VMX_EPT_VPID_CAP MSR > > - you were not checking against the supported types in the > implementation of the INVVPID instruction > > - the memory operand must always be read even if it isn't needed (e.g., > for type==global), similar to INVEPT > > - for single-context invalidation you're not checking that VPID != 0, > though in practice that doesn't matter because we don't want to support > single-context invalidation > > - you're always setting the MSR's bits to 1 even if !enable_vpid > > At this point it's better if you resend the whole nested VPID > implementation, i.e. the following five patches: > > KVM: VMX: adjust interface to allocate/free_vpid > KVM: VMX: introduce __vmx_flush_tlb to handle specific vpid > KVM: nVMX: emulate the INVVPID instruction > KVM: nVMX: nested VPID emulation > KVM: nVMX: expose VPID capability to L1 > > with the above issues fixed. Please also send kvm-unit-tests patches > that tests for the error cases.
Ok, I will do this after the vacation(until 10.7) in my country. :-)
Regards, Wanpeng Li
| |