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