[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] Could not run HVM domain on the latest xen-unstable.hgand Barcelona.



Hi Wei and YANAGISAWA-san,

I'm looking into it. But it's difficult for me since I don't have
a barcelona machine. Your cooperation would be really appreciated.

At first, I suspected gPXE. But the e1000 driver in gPXE never use PMM
services. On the other hand, rtl8139 uses PMM. So PMM looks a culprit.

But, now I suspect 32bit gateway code in rombios, since the problem 
is only occured on AMD cpu which directly executes real mode code.
On the other hand, Intel cpu emultates real mode code. The PMM
is the first user of 32bit gateway code in the boot sequence.

In order to confirm it, could you try the attached patch for test?
N.B. the size of guest memory must be smaller than 0xdeadbeaf(3.5GB).

If the guest dies with the following serial console message, 32bit
gateway code is correct. otherwise, the guest hanging up means PMM is
innocent.
==========================================================================
(XEN) io.c:199:d1 MMIO emulation failed @ 0008:deadbeaf: db e6 1c 80 8c 82
(XEN) hvm.c:810:d1 Triple fault on VCPU0 - invoking HVM system reset.
==========================================================================

If you get the above message, please revert only 32bitgateway.c and
try again. You can get debug messages of PMM.

Thanks,
Kouya

Huang2, Wei writes:
> We saw this problem recently. I traced it down to PMM patch submitted by
> Kouya and Akio (changeset 19077). 
> 
> To fix this problem temporarily, add mode=e1000 to your vif option. 
> vif = [ 'type=ioemu, bridge=xenbr0, model=e1000'] 
> 
> 
> Regards,
> 
> -Wei
> 
> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Yoshisato
> YANAGISAWA
> Sent: Tuesday, March 10, 2009 3:17 AM
> To: xen-devel
> Subject: [Xen-devel] Could not run HVM domain on the latest
> xen-unstable.hgand Barcelona.
> 
> 
> Hi all,
> 
> Does anybody have tested the latest xen-unstable.hg with an HVM domain
> on AMD Barcelona Opteron?
> I cloned xen-unstable.hg today (2009-03-10 JST), made config file for
> booting an OS image from CD-ROM, and tried to run an HVM domain.
> However, it stops running while booting.
> 
> According to the vnc, the virtual machine displayed following message:
> (snip)
> | Bochs BIOS - build: 06/23/99
> | $Revision: 1.221 $ $Date: 2008/12/07 17:32:29 $
> | Options: apmbios pcibios eltorito PMM
> |
> | ata1 master: QEMU DVD-ROM ATAPI-4 CD-Rom/DVD-Rom
> |
> | gPXE (http://etherboot.org) - 00:04.0 C900 PCI2.10 INT19 PMM0020_
> 
> According to the serial console, I also saw following message:
> (XEN) HVM1: HVM Loader
> (XEN) HVM1: Detected Xen v3.4-unstable
> (XEN) HVM1: CPU speed is 2300 MHz
> (XEN) irq.c:235: Dom1 PCI link 0 changed 0 -> 5
> (XEN) HVM1: PCI-ISA link 0 routed to IRQ5
> (XEN) irq.c:235: Dom1 PCI link 1 changed 0 -> 10
> (XEN) HVM1: PCI-ISA link 1 routed to IRQ10
> (XEN) irq.c:235: Dom1 PCI link 2 changed 0 -> 11
> (XEN) HVM1: PCI-ISA link 2 routed to IRQ11
> (XEN) irq.c:235: Dom1 PCI link 3 changed 0 -> 5
> (XEN) HVM1: PCI-ISA link 3 routed to IRQ5
> (XEN) HVM1: pci dev 01:3 INTA->IRQ10
> (XEN) HVM1: pci dev 03:0 INTA->IRQ5
> (XEN) HVM1: pci dev 04:0 INTA->IRQ5
> (XEN) HVM1: pci dev 02:0 bar 10 size 02000000: f0000008
> (XEN) HVM1: pci dev 03:0 bar 14 size 01000000: f2000008
> (XEN) HVM1: pci dev 02:0 bar 14 size 00001000: f3000000
> (XEN) HVM1: pci dev 03:0 bar 10 size 00000100: 0000c001
> (XEN) HVM1: pci dev 04:0 bar 10 size 00000100: 0000c101
> (XEN) HVM1: pci dev 04:0 bar 14 size 00000100: f3001000
> (XEN) HVM1: pci dev 01:1 bar 20 size 00000010: 0000c201
> (XEN) HVM1: Multiprocessor initialisation:
> (XEN) HVM1:  - CPU0 ... 48-bit phys ... fixed MTRRs ... var MTRRs [2/8]
> ... don.
> (XEN) HVM1: Testing HVM environment:
> (XEN) HVM1:  - REP INSB across page boundaries ... passed
> (XEN) HVM1: Passed 1/1 tests
> (XEN) HVM1: Writing SMBIOS tables ...
> (XEN) HVM1: Loading ROMBIOS ...
> (XEN) HVM1: 9628 bytes of ROMBIOS high-memory extensions:
> (XEN) HVM1:   Relocating to 0xfc000000-0xfc00259c ... done
> (XEN) HVM1: Creating MP tables ...
> (XEN) HVM1: Loading Cirrus VGABIOS ...
> (XEN) HVM1: Loading PCI Option ROM ...
> (XEN) HVM1:  - Manufacturer: http://etherboot.org
> (XEN) HVM1:  - Product name: gPXE
> (XEN) HVM1: Loading ACPI ...
> (XEN) HVM1:  - Lo data: 000ea020-000ea04f
> (XEN) HVM1:  - Hi data: fc002800-fc0042bf
> (XEN) HVM1: vm86 TSS at fc004400
> (XEN) HVM1: BIOS map:
> (XEN) HVM1:  c0000-c8fff: VGA BIOS
> (XEN) HVM1:  c9000-d57ff: Etherboot ROM
> (XEN) HVM1:  eb000-eb14c: SMBIOS tables
> (XEN) HVM1:  f0000-fffff: Main BIOS
> (XEN) HVM1: Invoking ROMBIOS ...
> (XEN) HVM1: $Revision: 1.221 $ $Date: 2008/12/07 17:32:29 $
> (XEN) stdvga.c:147:d1 entering stdvga and caching modes
> (XEN) HVM1: VGABios $Id: vgabios.c,v 1.67 2008/01/27 09:44:12 vruppert
> Exp $
> (XEN) HVM1: Bochs BIOS - build: 06/23/99
> (XEN) HVM1: $Revision: 1.221 $ $Date: 2008/12/07 17:32:29 $
> (XEN) HVM1: Options: apmbios pcibios eltorito PMM
> (XEN) HVM1:
> (XEN) HVM1: ata1 master: QEMU DVD-ROM ATAPI-4 CD-Rom/DVD-Rom
> (XEN) HVM1: IDE time out
> (XEN) HVM1:
> 
> No suspicious log is found in /var/log/xen/xend.log.
> 
> I came across this problem with AMD Quad-Core Opteron(tm) 2356 on Dell
> PowerEdge R805.  However, this kind of problem did not happened on the
> another machine I use (Intel Xeon 5130).
> 
> Does anybody know how to fix this problem or how to analyze it?
> 
> Thank you in advance,
> 
> -- 
> Yoshisato YANAGISAWA, Ph.D.
> Open Source Software Computing Project
> NTT Cyber Space Laboratories
> NIPPON TELEGRAPH AND TELEPHONE CORPORATION
> 1-1 Hikarinooka, Yokosuka-Shi,
> Kanagawa 239-0847, Japan

diff -r d035b66b5b4d tools/firmware/rombios/32bit/pmm.c
--- a/tools/firmware/rombios/32bit/pmm.c        Mon Mar 09 15:01:34 2009 +0000
+++ b/tools/firmware/rombios/32bit/pmm.c        Wed Mar 11 11:10:00 2009 +0900
@@ -69,7 +69,7 @@
 #include <../hvmloader/e820.h>
 #include "util.h"
 
-#define DEBUG_PMM 0
+#define DEBUG_PMM 1
 
 #define ASSERT(_expr, _action)                                  \
     if (!(_expr)) {                                             \
diff -r d035b66b5b4d tools/firmware/rombios/32bitgateway.c
--- a/tools/firmware/rombios/32bitgateway.c     Mon Mar 09 15:01:34 2009 +0000
+++ b/tools/firmware/rombios/32bitgateway.c     Wed Mar 11 11:10:00 2009 +0900
@@ -122,7 +122,11 @@ upcall2:
 upcall2:
     push MAX_ARG_BYTES-4+args_off[esp]
     loop upcall2
+#if 000
     mov eax, [BIOS_INFO_PHYSICAL_ADDRESS + BIOSINFO_OFF_bios32_entry]
+#else
+    mov eax, #0xdeadbeaf
+#endif
     call eax
     add esp, #MAX_ARG_BYTES
     mov ecx, eax  ; Result in ecx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.