From mboxrd@z Thu Jan 1 00:00:00 1970 From: Weidong Han Subject: Re: [PATCH 2/3 v2] XSAVE/XRSTOR: fix frozen states Date: Wed, 01 Sep 2010 14:16:03 +0800 Message-ID: <4C7DEFA3.209@intel.com> References: <1A42CE6F5F474C41B63392A5F80372B22A712306@shsmsx501.ccr.corp.intel.com> <4C7D37F002000078000133A6@vpn.id2.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4C7D37F002000078000133A6@vpn.id2.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jan Beulich Cc: Xen-devel , Keir Fraser List-Id: xen-devel@lists.xenproject.org Jan Beulich wrote: >>>> On 31.08.10 at 16:52, "Han, Weidong" wrote: >>>> >> --- a/xen/include/asm-x86/i387.h Tue Aug 31 18:12:03 2010 -0400 >> +++ b/xen/include/asm-x86/i387.h Tue Aug 31 18:20:46 2010 -0400 >> @@ -113,9 +113,9 @@ static inline void setup_fpu(struct vcpu >> if ( !v->fpu_initialised ) >> v->fpu_initialised = 1; >> >> - set_xcr0(v->arch.hvm_vcpu.xcr0 | XSTATE_FP_SSE); >> + /* Restore all supported feature states */ >> + set_xcr0(xfeature_mask); >> xrstor(v); >> - set_xcr0(v->arch.hvm_vcpu.xcr0); >> } >> else >> { >> > > Aren't you taking away control from the guest OS of what part of the > state it wants/needs to save? > > To fix 'frozen states', it needs to saves/restores all supported states. I find an issue here. It should set_xcr0 to hvm_vcpu.xcr0 after xsave() and xrstor(), because applications in guest may read xcr0. I will fix it in next version. Regards, Weidong