Port-xen archive

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

Re: mutex fault and no symbol table on recent Dom0 and Xen



Good news: The symbol table is back again. The fix is upstream
in xen-unstable. The elf code in Xen got reworked between Xen 3.0.4
and Xen 3.1. During that rework, elf symbol loading got broken in the way
that BSD_SYMTAB got still parsed, but not handled.
This is handled in xen-unstable again.

Christoph


On Monday 30 July 2007 08:45:33 Christoph Egger wrote:
> The mutex error is a bug in NetBSD.
>
> The missing symbol table is a regression in Xen 3.1.
> (The symbol table is there with Xen 3.0.4). I am already
> working on fixing this.
>
> Christoph
>
> On Sunday 29 July 2007 17:13:15 Kazushi Marukawa wrote:
> >    On Jul 3,  9:45, Kazushi (Jam) Marukawa wrote:
> >    > Subject: mutex fault and no symbol table on recent Dom0 and Xen
> >    > Hi,
> >    >
> >    > I'm having difficulties with recent Dom0 kernel.  It crashes
> >    > with following message.
> >    >
> >    >    Mutex error: mutex_vector_exit: exiting unheld spin mutex
> >    >
> >    > I tried Dom0 from both 20070627 and 20070701.  Both crashed
> >    > because of mutex error.  Here is a crash log from 0627.  Not
> >    > sure why, but db didn't show symbol table.
> >
> > I tried recent kernel, 2007/07/26 source codes, and got the
> > same problem.
> >
> > This time, I konw db doesn't work with Xen 3.1, so I hand-
> > translated addresses to symbol name.  Can someone inspect
> > this problem?  Thanks.
> >
> > -----
> > Mutex error: mutex_vector_exit: exiting unheld spin mutex
> >
> > lock address : 0x00000000c0978280
> > current cpu  :                  0
> > current lwp  : 0x00000000cae21e00
> > owner field  : 0x0000000000000b00 wait/spin: 0/1
> >
> > panic: lock error
> > Stopped in pid 0.2 (system) at  0xc04bbe14:     popl    %ebp
> > db> trace
> > ?(c085f60d,cae4eee4,cae4eed8,c0439717,b) at 0xc04bbe14
> > ?(c083d699,c083c34b,c06ef970,c083c2e7,c0978280) at 0xc04396a5
> > ?(0,c0978280,c08d198c,c06ef970,c083c2e7) at 0xc0434d21
> > ?(c0978280,c06ef970,c083c2e7,0,0) at 0xc0414c2c
> > ?(c0978280,ca003b9a,cae4ef78,e1894609,c0914520) at 0xc0414e0f
> > ?(0,0,cae4efb8,c04cc0b6,0) at 0xc042b8e0
> > ?(0,cae4efa8,0,f,fffff000) at 0xc04f42af
> > ?(0,cad9cbdc,3,1,c04f42bb) at 0xc0103dfd
> > ?(f,cad9cbdc,cad9cb94,0,0) at 0xc04cc6b7
> > --- switch to interrupt stack ---
> > ?(cad9cbdc,0,11,31,ca000011) at 0xc0102550
> > ?(c040bd50,cae21e00,cad9cc6c,c040bdfe,cae21e00) at 0xc0104323
> > ?(cae21e00,cad9cc68,c0413b6e,0,cae21e00) at 0xc04be545
> > ?(cae21e00,0,c01001e7,c01001df,c01001e7) at 0xc040bdfe
> > db>
> > -----
> >
> > NetBSD's DB cannot read symbol table on Xen 3.1.  Therefore,
> > I translated it to name by hand.
> >
> > -----
> > Mutex error: mutex_vector_exit: exiting unheld spin mutex
> >
> > lock address : 0x00000000c0978280 (sched_mutex)
> > current cpu  :                  0
> > current lwp  : 0x00000000cae21e00
> > owner field  : 0x0000000000000b00 wait/spin: 0/1
> >
> > panic: lock error
> > Stopped in pid 0.2 (system) at  cpu_Debugger+0x4:     popl    %ebp
> > db> trace
> > db> trace
> > cpu_Debugger(c085f60d,cae4eee4,cae4eed8,c0439717,b) at cpu_Debugger+0x4
> > panic(c083d699,c083c34b,c06ef970,c083c2e7,c0978280) at panic+0x155
> > lockdebug_abort(0,c0978280,c08d198c,c06ef970,c083c2e7) at
> > lockdebug_abort+0x61 mutex_abort(c0978280,c06ef970,c083c2e7,0,0) at
> > mutex_abort+0x3c
> > mutex_vector_exit(c0978280,ca003b9a,cae4ef78,e1894609,c0914520) at
> > mutex_vector_exit+0xcf callout_softclock(0,0,cae4efb8,c04cc0b6,0) at
> > callout_softclock+0x240 softintr_dispatch(0,cae4efa8,0,f,fffff000) at
> > softintr_dispatch+0x3f Xsoftclock(0,cad9cbdc,3,1,c04f42bb) at
> > Xsoftclock+0x39
> > evtchn_do_event(f,cad9cbdc,cad9cb94,0,0) at evtchn_do_event+0xf7
> > --- switch to interrupt stack ---
> > call_evtchn_do_event(cad9cbdc,0,11,31,ca000011) at
> > call_evtchn_do_event+0x1c
> > hypervisor_callback(c040bd50,cae21e00,cad9cc6c,c040bdfe,cae21e00) at
> > hypervisor_callback+0x63 cpu_idle(cae21e00,cad9cc68,c0413b6e,0,cae21e00)
> > at cpu_idle+0x25
> > idle_loop(cae21e00,0,c01001e7,c01001df,c01001e7) at idle_loop+0xae
> > db>
> > -----
> >
> > -- Kazushi
> > This process can check if this value is zero, and if it is, it does
> > something child-like.
> >             -- Forbes Burkowski, Computer Science 454



Home | Main Index | Thread Index | Old Index