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] Re: Xen 3.2 and Big Real Mode support?

To: Guillaume Thouvenin <guillaume.thouvenin@xxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Re: Xen 3.2 and Big Real Mode support?
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Wed, 06 Feb 2008 08:32:23 +0000
Delivery-date: Wed, 06 Feb 2008 00:32:39 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20080206092030.6ec099c9@frecb000711>
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: AchomsuXChxDeNSOEdyZaAAWy6hiGQ==
Thread-topic: [Xen-devel] Re: Xen 3.2 and Big Real Mode support?
User-agent: Microsoft-Entourage/
On 6/2/08 08:20, "Guillaume Thouvenin" <guillaume.thouvenin@xxxxxxxxxxxx>

>> By the way, this is now fixed with tip of the xen-unstable tree (changeset
>> 16980), obtainable from http://xenbits.xensource.com/staging/xen-unstable.hg
> Waow. I don't understand everything (and especially how you find that
> the problem was here) but it works now.

I found the bug because I tracked down the real-mode -> protected-mode
transition code in the SuSE bootloader and it did something like this at
start of protected mode:
  mov %ss,%eax
  shl $4,%eax
  add %eax,%esp
  mov <protected mode flat segment>,%bx
  mov %bx,%ss

The problem was that the bottom bits of %ss got cleared on exit from real
mode, to satisfy vmenter checks that the processor does. But this deliberate
corruption of state can of course affect program execution and in this case
we end up with a bad stack pointer! So the fix had to be to emulate far
enough into protected mode that %cs and %ss both get reloaded with valid
protected-mode segment data.

 -- Keir

Xen-devel mailing list

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