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/
Home Products Support Community News


Re: [Xen-devel] 32bit/PAE guest on 64bit hypervisor work

To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] 32bit/PAE guest on 64bit hypervisor work
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Mon, 21 Aug 2006 11:52:49 +0100
Delivery-date: Mon, 21 Aug 2006 03:53:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <44E9A4EB.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: AcbFD/FKL6OdbzEDEduDqQAKle7CWA==
Thread-topic: [Xen-devel] 32bit/PAE guest on 64bit hypervisor work
User-agent: Microsoft-Entourage/
On 21/8/06 11:19 am, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> While originally I expected to get at least the fundamentals of this done
> without need to change the ABI in any form, I quickly ran into issues with
> the GDT layout (since the guest usable selectors are published I consider
> them part of the ABI): Obviously, the selector values used to run a 32bit
> guest should match those of the 32bit hv, and hence the GDT layout
> needs to be changed for the 64bit hv. This is despite context switches
> between 32bit and 64bit guests needing to switch the GDT, since
> __HYPERVISOR_DS32 overlaps 32bit's FLAT_RING1_CS32. The GDT
> switching itself will be necessary because the 32bit guest must not be
> able to use FLAT_RING3_CS64.

This doesn't sound like a showstopper to me. We just move __HYPERVISOR_DS32
to a different location on x86/64 (it's not part of the ABI). Then we
context switch entries 3,4,5,6 of the GDT. In fact entry 3 can perhaps stay
as ring-1 code, and we only need to switch entries 4,5,6.

And yes: incremental patches are definitely best. There are multiple people
working on this so we want to avoid duplicated effort and also make sure we
all agree the strategy for implementing this feature.

 -- Keir

Xen-devel mailing list