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

[Xen-devel] the ptwr cmpxchg fix

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] the ptwr cmpxchg fix
From: John Levon <levon@xxxxxxxxxxxxxxxxx>
Date: Thu, 18 Oct 2007 20:58:52 +0100
Delivery-date: Thu, 18 Oct 2007 12:59:48 -0700
Envelope-to: www-data@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/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
User-agent: Mutt/1.5.9i
I didn't think this through well enough. It's an ABI change.

The reason Solaris worked at all before was that we didn't remove
_PAGE_USER for kernel PTEs when compatibility was broken last time
(3.0.3 I think). Thus the combination of our bug and the hypervisor's
bug conspired to work.

Now the hypervisor is fixed, we'll be getting _PAGE_GLOBAL on our kernel
pages - not a good idea. But we can't just fix Solaris, because other
hypervisors without the fix will then not be putting _PAGE_USER on
kernel PTEs - much worse!!

I think the right thing to do is:

- finally start the page listing incompatibilities on the Wiki
  (theoretical or otherwise) [1]

- fix Solaris to add _PAGE_USER (or PT_USER as we know it) iff we have a
  'broken' hypervisor. I'm not sure how to do that though, beyond a
  "if it's our hypervisor, or Xen 3.1.2 or higher" check. BTW it would
  be nice to see this in 3.1.2

Does that make sense Keir?

thanks
john

[1]

This is the list I'm aware of that breaks Solaris domUs:

    *  Xen 3.1.1 is broken for 64-bit in B75, b76 (6616864).
      xen-unstable post 2007-10-15 is OK, as is Xen 3.1
    * Xen 3.0.4 upstream is broken for Solaris domU (doesn't
      save/restore trap interrupt settings)
    * pre-3.0.4 doesn't work on 64-bit (changes in PTE handling?)
    * pre-3.0.4 doesn't work with SMP guests (spurious page fault code)
    * To quote Jan Beulich:

Subject: [Xen-devel] c/s 15147 change to struct vcpu_register_vcpu_info

This changeset changed the layout of the structure, and 3.1 as well as
2.6.23 use the old layout, while 3.1.1 uses to new one.

We don't use this on Solaris yet, however

    * the fix for cmpxchg and PT_GLOBAL means that newer Solaris
      versions (or anything cmpxchg'ing a PTE) that correctly don't set
      PT_USER will break on hypervisors without this changeset:
      16129:2173fe77dcd2 from xen-unstable

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

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