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] Re: [PATCH][RFC] Emulating real mode with x86_emulate

To: "Kamble, Nitin A" <nitin.a.kamble@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH][RFC] Emulating real mode with x86_emulate
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Thu, 29 Mar 2007 19:11:41 -0500
Cc: "Yu, Wilfred" <wilfred.yu@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir@xxxxxxxxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>
Delivery-date: Fri, 30 Mar 2007 01:13:14 +0100
Envelope-to: Keir.Fraser@xxxxxxxxxxxx
In-reply-to: <1175212362.27076.32.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
References: <4607074E.1030807@xxxxxxxxxx> <1175203075.27076.17.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <460C4AAE.5020707@xxxxxxxxxx> <1175212362.27076.32.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.10 (X11/20070307)
Kamble, Nitin A wrote:
Hi Anthony,
Perhaps you did --emulate-16bit instead of -emulate-16bit? The patch definitely has the added option.

You are right, it was -emulate-16bit.

> - I tried hardcoding this to 1 in the qemu code, and found that the > port x595 is not reflecting it correctly to hvmloader.

Are you sure you don't have something stale?
I started with a fresh tree for your patch. I also tried rebuilding the quemu from start.

Okay, you'll need to make sure that hvmloader and qemu are both being rebuilt and reinstalled.

I suspect you have a partial install or something. I have never seen this happen.
I have already tried few times. i will try one more time with newer fresh xen-unstable tree. Some of the debug messages were coming from my prinks.
You should see x86_emulate run for a good number of instructions. The odd thing about your log is that the transfering control to x86_emulate message uses the EIP from the vmcs. If this is the first time the emulator is being invoked, how can eip be 0? There's nothing in the emulate path that would touch the vmcs.

How exactly are you forcing the use of the emulator instead of vmxassist?

I basically forced emulate_16bit varilable in qemu to 1.

int acpi_enabled = 0;
int fd_bootchk = 1;
int emulate_16bit* = 1;*

and in the hvmloader instead of checking the output of the port 595, I replaced it with if (1).
like this:
#if 0
        if (inl(0x595) == 0xdeadbeef) {
#else
*        if (1) {*
#endif

The really curious thing is that eip from the VMCS is set to 0. eip should be address of the EIP of whatever movl cr0 instruction that occurs when returning from main() in hvmloader.

I guess it's possible that if you are using a version of unstable that predates Keir's recent hvmloader changes, you wouldn't have hvmloader switching to real mode. That could explain some of the weirdness you're seeing. What changeset are you on?

Regards,

Anthony Liguori


Thanks & Regards,
Nitin
Open Source Technology Center, Intel Corporation.
-------------------------------------------------------------------------
The mind is like a parachute; it works much better when it's open.



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