Subject: Re: SMP re-entrancy in kernel drivers/"bottom half?"
To: None <email@example.com>
From: YAMAMOTO Takashi <firstname.lastname@example.org>
Date: 12/18/2003 09:15:50
> >are you suggesting a "global" SPL? (ie. not per cpu)
> Of course; thats one thing the spinlocks do.
it sounds like a regression.
> >i'm confused.
> >how bottom-half drivers works simultaneously while all of them
> >need to acquire the spinlock corresponding to the lowest SPL?
> Let us use "True device IPLs" to mean those IPL levels where runs
> interrupt service routines. I'm suggesting we have one spinlock per
> device instance for those interrupt levels; and one (global) spinlock
> for higher levels. Assume, for now, that at most one CPU is running
> software-interrupt routines or `top half' kernel code.
what's "higher levels"?
> If an interrupt-service entrypoint needs to raise its IPL above the
> level where the kernel entered it (hwere, for its own device softc,
> the spinlock in the softc guarantees atomic access), then it has
> to acquire the global spinlock()s for IPLs above device entrypoints.
> This assumes that code at IPL_NET never needs to go to IPL_BIO.
> As far as I can tell thats a safe assumption.
how low level interrupt handlers (e.g. Xintr_* on i386) raise SPL?