tech-kern archive

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

Re: evbarm hang



On Fri, Apr 19, 2019 at 11:13:40AM +0100, Nick Hudson wrote:
> On 19/04/2019 10:10, Manuel Bouyer wrote:
> > Overnight lockdebug did find something:
> > login: [ 1908.3939406] Mutex error: mutex_vector_enter,504: spinout
> > 
> > [ 1908.3939406] lock address : 0x0000000090b79074 type     :               spin
> > [ 1908.3939406] initialized  : 0x000000008041601c
> > [ 1908.3939406] shared holds :                  0 exclusive:                  1
> > [ 1908.3939406] shares wanted:                  0 exclusive:                  1
> > [ 1908.3939406] current cpu  :                  0 last held:                  1
> > [ 1908.3939406] current lwp  : 0x0000000091fc3760 last held: 0x0000000091fc26e0
> > [ 1908.3939406] last locked* : 0x0000000080416668 unlocked : 0x00000000804169e8
> > [ 1908.3939406] owner field  : 0x0000000000010500 wait/spin:                0/1
> > 
> > [ 1908.4626458] panic: LOCKDEBUG: Mutex error: mutex_vector_enter,504: spinout
> > [ 1908.4626458] cpu0: Begin traceback...
> > [ 1908.4626458] 0x9e4a192c: netbsd:db_panic+0x14
> > [ 1908.4626458] 0x9e4a1944: netbsd:vpanic+0x194
> > [ 1908.4626458] 0x9e4a195c: netbsd:snprintf
> > [ 1908.4626458] 0x9e4a199c: netbsd:lockdebug_more
> > [ 1908.4626458] 0x9e4a19d4: netbsd:lockdebug_abort+0xc0
> > [ 1908.4626458] 0x9e4a19f4: netbsd:mutex_abort+0x34
> > [ 1908.4626458] 0x9e4a1a64: netbsd:mutex_enter+0x580
> > [ 1908.4626458] 0x9e4a1abc: netbsd:pool_get+0x70
> > [ 1908.4626458] 0x9e4a1b0c: netbsd:pool_cache_get_slow+0x1f4
> > [ 1908.4626458] 0x9e4a1b5c: netbsd:pool_cache_get_paddr+0x288
> > [ 1908.4626458] 0x9e4a1b7c: netbsd:m_clget+0x34
> > [ 1908.4626458] 0x9e4a1bdc: netbsd:dwc_gmac_intr+0x194
> > [ 1908.4626458] 0x9e4a1bf4: netbsd:gic_fdt_intr+0x2c
> > [ 1908.4626458] 0x9e4a1c1c: netbsd:pic_dispatch+0x110
> > [ 1908.4626458] 0x9e4a1c7c: netbsd:armgic_irq_handler+0xf4
> > [ 1908.4626458] 0x9e4a1db4: netbsd:irq_entry+0x68
> > [ 1908.4626458] 0x9e4a1dec: netbsd:tcp_send_wrapper+0x9c
> > [ 1908.4626458] 0x9e4a1e84: netbsd:sosend+0x6fc
> > [ 1908.4626458] 0x9e4a1eac: netbsd:soo_write+0x3c
> > [ 1908.4626458] 0x9e4a1f04: netbsd:dofilewrite+0x7c
> > [ 1908.4626458] 0x9e4a1f34: netbsd:sys_write+0x5c
> > [ 1908.4626458] 0x9e4a1fac: netbsd:syscall+0x12c
> > [ 1908.4626458] cpu0: End traceback...
> > 
> 
> Does show event tell you if dwc_gmac interrupts are being distributed to
> both cpus?

Looks like they are

> I think we need to prevent or protect against this.

but the IRQ handler is not registered as MPSAFE, so it should run under the
kernel lock

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


Home | Main Index | Thread Index | Old Index