[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH] Add xsave/xrstor support to Xen


  • To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Cui, Dexuan" <dexuan.cui@xxxxxxxxx>
  • Date: Wed, 28 May 2008 21:11:02 +0800
  • Delivery-date: Wed, 28 May 2008 06:11:49 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AciLNglWmLAW2RX4R4m5x7YnntBhQw1elaZgAAKdtfAAAV4vRgAAuvKA
  • Thread-topic: [Xen-devel] [PATCH] Add xsave/xrstor support to Xen

The xsave/xrstor infrastructure is mainly for extensibility with respect to the 
"processor extened states" since more extended states are coming (i.e. 
http://softwarecommunity.intel.com/isn/downloads/intelavx/Intel-AVX-Programming-Reference-31943302.pdf).
With the patch, XSAVE-aware HVM guest can make use of the coming extended 
features.

And Intel SDM 3A: chatper 12 ( SYSTEM PROGRAMMING FOR INSTRUCTION SET 
EXTENSIONS AND PROCESSOR EXTENDED STATES) supplies a generic description.

BTW, some CPU, such as Intel Core 2 Duo Processor E8500, E8400, have had the 
support of the XSAVE/XRSTOR instructions.

For now, the xsave_area is at least 512 + 64 (the xsave header) = 576 bytes in 
length, though the first 512 bytes are completely compatible with the legacy 
512-byte arch.guest_context.fpu_ctxt; actually we also have to save the 
per-vcpu 64-bit "xfeature_mask", and the gloabal variables 
"xsave_cntxt_max_size, xfeature_low, xfeature_high" (imagine different CPU has 
different XSAVE capability). So I think we have to extend  the current 
save/restore format. 

-- Dexuan


-----Original Message-----
From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx] 
Sent: 2008年5月28日 20:43
To: Cui, Dexuan; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] [PATCH] Add xsave/xrstor support to Xen

I'm missing any context about these new instructions. Why would we use them
rather than FXSAVE/FXRSTOR? They seem to save the same state. Unless the
amount of PV guest state that needs to be saved/restored has actually been
extended then there will be no need to change the cpucontext hypercalls or
the save/restore format.

 -- Keir

On 28/5/08 13:06, "Cui, Dexuan" <dexuan.cui@xxxxxxxxx> wrote:

> Hi Keir,
> In the xsave/xrstor patch, I don't use "arch.guest_context.fpu_ctxt" any
> longer.
> I use "arch_vcpu.xsave_area" to save the processor extended states.
> 
> Looks this causes trouble for guest's save/restore (including PV guest and HVM
> guest):
> 
> On xsave/xrstor-capable host, to support guest's save/restore, Control Panel
> should save/restore the variable-length "xsave_area", but the current
> hypercall XEN_DOMCTL_{get/set}vcpucontext can't transfer the "xsave_area"
> between Control Panel and hypervisor, so a new hypercall is needed for this?
> Looks it's not very easy to make the codes clean... :(
> 
> Could you give some suggestions?
> 
> Thanks!
> 
> -- Dexuan
> 
> 
> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Cui, Dexuan
> Sent: 2008年5月28日 20:03
> To: Keir Fraser; xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [Xen-devel] [PATCH] Add xsave/xrstor support to Xen
> 
> The attached patch adds the support of xsave/xrstor infrastructure for
> x86.
> xsave/xrstor manages the existing and future processor extended states
> in x86 architecture.
> 
> The XSAVE/XRSTOR/XGETBV/XSETBV instructions and the Processor Extended
> State are defined in the Intel SDMs:
> http://www.intel.com/products/processor/manuals/
> 
> The basic ideas of the patch are:
> 1) enable the xsave/xrstor feature when Xen boots;
> 2) xsave/xrstor the related processor states (i.e., FPU/MMX, SSE) on
> vcpu context switch;
> 3) with the xsave/xrstor feature enabled, Xen doesn't intercept HVM
> vcpu's #NM at all, and Xen still intercepts PV vcpu's #NM and forwards
> it into PV vcpu if necessary;
> 4) xsave/xrstor-aware HVM guest is supported in the patch.
> 
> Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.