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] i386: remove NMI deferral

To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] i386: remove NMI deferral
From: Keir Fraser <keir@xxxxxxxxxxxxx>
Date: Wed, 20 Jun 2007 17:39:03 +0100
Delivery-date: Wed, 20 Jun 2007 09:37:07 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <4677C5AA.76E4.0078.0@xxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcezWYK5wVThoB9MEdyfcgAX8io7RQ==
Thread-topic: [Xen-devel] [PATCH] i386: remove NMI deferral
User-agent: Microsoft-Entourage/11.3.3.061214
On 19/6/07 11:01, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> +        cmpw %cx,%di;                                   \
> +        mov %ecx,%ds;                                   \
>          mov %fs,UREGS_fs(%esp);                         \
> +        cmovel UREGS_ds(%esp),%edi;                     \
> +        cmpw %cx,%si;                                   \
> +        mov %edi,UREGS_ds(%esp);                        \
> +        cmovel UREGS_es(%esp),%esi;                     \
> +        mov %ecx,%es;                                   \
>          mov %gs,UREGS_gs(%esp);                         \

It looks like this section of SAVE_ALL gets executed only if we interrupted
the guest in protected mode (i.e., not vm86 mode, and not an outer Xen
context). So I'm not sure how the cmove's will ever be a no-op -- how could
we have UREGS_cs&3!=0, yet have HYPERVISOR_DS in %ds or %es? I guess I must
be missing something fundamental about how this patch works...

The cmove's themselves raise another question -- can we really rely on all
32-bit CPUs that Xen is likely to run on to actually have CMOV support? It
seems possible, but I'm not certain.

 -- Keir


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

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