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] 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/11.3.6.070618
On 6/2/08 08:20, "Guillaume Thouvenin" <guillaume.thouvenin@xxxxxxxxxxxx>
wrote:

>> 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
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

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