Port-sparc archive

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

Re: mostly working SMP again



On Tue, Jan 05, 2010 at 03:26:02PM -0500, Michael wrote:
> >Maybe something fails to grab the kernel_lock ?
> >Can you add a check (KASSERT or something) that the kernel_lock is
> >held in ncr53c9x_intr() and ncr53c9x_scsipi_request() ?
> >
> >Maybe something like
> >KASSERT(__SIMPLELOCK_LOCKED_P(kernel_lock)
> >or
> >KASSERT(ci->ci_biglock_count > 0)
> >will work to check this.
> 
> You were right - this KASSERT fails immediately. No idea why the esp  
> interrupt is treated as MP safe or for what other reason the biglock  
> wrapper isn't in place here.

I see there is some lock operations in the esp driver, so maybe it's
intended to be MP-safe. But the scsipi layer is not, so even if
esp is MP-safe it should grab the kernel_lock before calling scsipi
entry points.

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


Home | Main Index | Thread Index | Old Index