WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 2/3 v2] XSAVE/XRSTOR: fix frozen states

To: Jan Beulich <JBeulich@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 2/3 v2] XSAVE/XRSTOR: fix frozen states
From: Weidong Han <weidong.han@xxxxxxxxx>
Date: Wed, 01 Sep 2010 14:16:03 +0800
Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Tue, 31 Aug 2010 23:16:57 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4C7D37F002000078000133A6@xxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1A42CE6F5F474C41B63392A5F80372B22A712306@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4C7D37F002000078000133A6@xxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)
Jan Beulich wrote:
On 31.08.10 at 16:52, "Han, Weidong" <weidong.han@xxxxxxxxx> 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



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

<Prev in Thread] Current Thread [Next in Thread>