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

Re: [Xen-devel] [PATCH] i386: remove NMI deferral


  • To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxxxxxxxx>
  • Date: Wed, 20 Jun 2007 17:39:03 +0100
  • Delivery-date: Wed, 20 Jun 2007 09:37:07 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcezWYK5wVThoB9MEdyfcgAX8io7RQ==
  • Thread-topic: [Xen-devel] [PATCH] i386: remove NMI deferral

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


 


Rackspace

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