[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 0/4] nested vmx: enable VMCS shadowing feature
> -----Original Message----- > From: Jan Beulich [mailto:JBeulich@xxxxxxxx] > Sent: Wednesday, January 23, 2013 10:31 PM > To: Xu, Dongxiao > Cc: Dong, Eddie; Nakajima, Jun; Zhang, Xiantao; xen-devel > Subject: Re: [PATCH v5 0/4] nested vmx: enable VMCS shadowing feature > > >>> On 23.01.13 at 09:39, Dongxiao Xu <dongxiao.xu@xxxxxxxxx> wrote: > > Changes from v4 to v5: > > - Change the size for vvmcs buffer from 500 to 100. > > - Store page_info in per-pCPU structure instead of MFN in per-vCPU > structure > > for vmread/vmwrite bitmaps. > > - Define correct data type to avoid force type conversion. > > Looks good to me now, so I guess all that's needed is an ack from > Jun or Eddie, and a check of yours that this still applies to the tip of > the staging tree. Thanks! I checked the latest staging tree, and there is a tiny conflict, I will fix it and re-send them out. Thanks, Dongxiao > > Jan > > > Changes from v3 to v4: > > - Allocate a buffer in initialization time for data exchange instead of > > runtime allocation (reflect Jun's comment). > > - Move the vmread/vmwrite bitmap logic into nvmx_vcpu_initialise(), also > > track MFN instead of virtual address in the vcpu global data. (reflect Jan's > > comment). > > > > Changes from v2 to v3: > > - Use pfn_to_paddr() to get the address from frame number instead of > doing > > shift directly. > > - Remove some unnecessary initialization code and add "static" to > > vmentry_fields and gpdptr_fields. > > - Enable the VMREAD/VMWRITE bitmap only if nested hvm is enabled. > > - Use clear_page() to set all 0 to the page instead of memset(). > > - Use domheap to allocate the VMREAD/VMWRITE bitmap instead of > xenheap. > > > > Changes from v1 to v2: > > - Use domain_page_map_to_mfn() instead of virt_to_mfn() to get the > machine > > frame. > > - Address other comments from Jan, including some programming format, > return > > value type, etc. > > > > Latest Intel SDM introduced a new feature "VMCS shadowing" at bit 14 in > > Secondary Processor-Based VM-Execution Controls for nested virtualization. > > > > The main purpose of this feature is to reduce or eliminate the number of VM > > exit > > for non-root VMREAD and VMWRITE. It provides the capability to link a > > "virtual VMCS" with the current running VMCS, so that after VM entry, the > > non-root VMREAD and VMWRITE can get/set related data directly from/to > the > > "virtual VMCS" without trap and emulation. > > > > A separate bitmap is introduced for VMREAD and VMWRITE, from which > > hypervisor > > can control whether VMREAD/VMWRITE from/to certain VMCS field will > trigger > > VM exit or directly get/set data by hardware. > > > > With the new feature introduced, all the in "virtual VMCS" need to be > > operated > > by VMREAD and VMWRITE because this VMCS will also be loaded into > hardware. > > This requires the capability to VMWRITE all the VMCS fields, including those > > readonly ones. Intel SDM introduces this functionality at bit 29 in > > IA32_VMX_MISC MSR. > > > > For details, please refer to: > > > http://www.intel.com/content/www/us/en/processors/architectures-software > -devel > > oper-manuals.html > > > > Thanks, > > Dongxiao > > > > Dongxiao Xu (4): > > nested vmx: Use a list to store the launched vvmcs for L1 VMM > > nested vmx: use VMREAD/VMWRITE to construct vVMCS if enabled VMCS > > shadowing > > nested vmx: optimize for bulk access of virtual VMCS > > nested vmx: enable VMCS shadowing feature > > > > xen/arch/x86/hvm/vmx/vmcs.c | 48 ++++++ > > xen/arch/x86/hvm/vmx/vvmx.c | 324 > ++++++++++++++++++++++++++++++++---- > > xen/include/asm-x86/hvm/vmx/vmcs.h | 23 +++- > > xen/include/asm-x86/hvm/vmx/vvmx.h | 24 +++- > > 4 files changed, 383 insertions(+), 36 deletions(-) > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |