Subject: Re: recent dom0 kernels reboot on loading?
To: Mikolaj Golub <to.my.trociny@gmail.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 09/17/2007 21:30:13
On Mon, Sep 17, 2007 at 03:57:39PM +0300, Mikolaj Golub wrote:
> 
> On Mon, 03 Sep 2007 10:27:46 +0300 Mikolaj Golub wrote:
> 
>  MG> Crash info:
> 
>  MG> (XEN) ----[ Xen-3.1.0  x86_32  debug=n  Not tainted ]----
>  MG> (XEN) CPU:    0
>  MG> (XEN) EIP:    e019:[<c04cc344>]
>  MG> (XEN) EFLAGS: 00000246   CONTEXT: guest
>  MG> (XEN) eax: c0955404   ebx: 000003cf   ecx: 00000001   edx: c0955404
>  MG> (XEN) esi: 00000000   edi: c0955400   ebp: c0a57b0c   esp: c0a57ad0
>  MG> (XEN) cr0: 8005003b   cr4: 000006d0   cr3: 1ea54000   cr2: 00000000
>  MG> (XEN) ds: e021   es: e021   fs: 0000   gs: 0000   ss: e021   cs: e019
>  MG> (XEN) Guest stack trace from esp=c0a57ad0:
>  MG> (XEN)    00000000 c04cc344 0001e019 00010046 c043535b c0955404 00000000 00000000
>  MG> (XEN)    00000000 00000000 00000000 c0955404 000003cf 000003c0 c0955400 c0a57b4c
> 
>  MG> gdb session:
> 
>  MG> -bash-3.2$ gdb netbsd-XEN3_DOM0.gdb 
>  MG> GNU gdb 6.5
>  MG> Copyright (C) 2006 Free Software Foundation, Inc.
>  MG> GDB is free software, covered by the GNU General Public License, and you are
>  MG> welcome to change it and/or distribute copies of it under certain conditions.
>  MG> Type "show copying" to see the conditions.
>  MG> There is absolutely no warranty for GDB.  Type "show warranty" for details.
>  MG> This GDB was configured as "i386--netbsdelf"...
>  MG> (gdb) list *0xc04cc344
>  MG> No source file for address 0xc04cc344.
> 
> (gdb) disassemble 0xc04cc344
> Dump of assembler code for function mutex_enter:
> 0xc04cc340 <mutex_enter+0>:     mov    0x4(%esp),%edx
> 0xc04cc344 <mutex_enter+4>:     mov    %fs:0x18,%ecx
> 0xc04cc34b <mutex_enter+11>:    xor    %eax,%eax
> 0xc04cc34d <mutex_enter+13>:    cmpxchg %ecx,0x0(%edx)
> 0xc04cc351 <mutex_enter+17>:    jne,pn 0xc04161b0 <mutex_vector_enter>
> 0xc04cc358 <mutex_enter+24>:    ret    
> 0xc04cc359 <mutex_enter+25>:    lea    0x0(%esi),%esi
> End of assembler dump.
> 
> Am I right interpreting it that `list *0xc04cc344' did not output because at
> address 0xc04cc344 there is assembler function mutex_enter? So, crush is at
> mutex_enter?

Yes, on the mov %fs:0x18,%ecx intruction, or maybe the previous one.
I'm not sure if it's OK for %fs to be 0 at this point. To me it looks like
it should not.

Could you try to see what c043535b and c0955404 points to in your sources ?

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