Subject: Re: NetBSD crashes on 4 GB Supermicro
To: None <marcotte@panix.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 05/03/2007 19:44:21
On Thu, May 03, 2007 at 12:18:02PM -0400, marcotte@panix.com wrote:
> I'm having a problem running a NetBSD domU on one particular type of
> system.
> 
> 	SuperMicro PDSMI+ motherboard
> 	4 GB RAM (about 3.5 MB usable)
> 	Xen 3.0.3-0 (non-PAE, of course)
> 	dom0: Linux 2.6.16.29
> 
> Normally NetBSD will crash immediately upon startup on these systems.
> Linux domUs work just fine. NetBSD also works fine on other 4GB systems.
> 
> The only way I can get NetBSD to work on these is if I tell Xen to
> limit the RAM usage to 3G or less on the command line (mem=3072m).
> 
> That last 512MB or so may not seem like much, but without PAE support,
> I'm trying to make use of every last available MB.

I've seen the same issue on a Dell 2950 system. From memory, linux
domU couldn't start either, but this system isn't running Xen now so
I can't check.

> 
> I have no idea how to debug a domU. Any help would be appreciated.
> 
> Thanks.
> 
> ----------
> 
> This is what Xen has to say about it:
> 
> (XEN) domain_crash_sync called from entry.S (ff150e49)
> (XEN) Domain 1 (vcpu#0) crashed on cpu#1:
> (XEN) ----[ Xen-3.0.3-0  x86_32  debug=n  Not tainted ]----
> (XEN) CPU:    1
> (XEN) EIP:    e019:[<c02b6ea9>]
> (XEN) EFLAGS: 00000246   CONTEXT: guest
> (XEN) eax: ffffffff   ebx: d097d003   ecx: d097d000   edx: 00000000
> (XEN) esi: 0000005b   edi: c0455000   ebp: c0317bb4   esp: c0317b78
> (XEN) cr0: 8005003b   cr4: 000026d0   cr3: d097c000   cr2: 00000000
> (XEN) ds: e021   es: e021   fs: 0000   gs: 0000   ss: e021   cs: e019
> (XEN) Guest stack trace from esp=c0317b78:
> (XEN)    00000000 c02b6ea9 0001e019 00010046 c02b798c d097a154 d0973061 00000000
> (XEN)    00000000 00000000 c0454000 00000005 c0450c10 c0450000 c0459000 00000000
> (XEN)    c0100179 c0317bbc 0000e021 c01044bc c0104520 00000000 00000000 00000000
> (XEN)    00000000 00000000 00000000 c02ec8a0 00000000 00000000 00000000 00000000
> (XEN)    00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [many more lines of zeros]


build a XEN3_DOMU kernel with -g and boot it. Then use gdb netbsd.gdb
to match the eip value (c02b6ea9 here) to function/line in the source
code. It's quite possible that this will be in assembly code;
then you can use 'disass' to find the instruction.
You can also try to walk the stack dump to reconstruct the function
call graph.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--