:I do not expect implementation right now.
:I can put some stubs in pertinent places.
:What I am looking for is some kind of
:guidelines/hints/...
The answer is.... nobody knows yet :-).
Interrupts will probably wind up running each in its own thread, and
we will probably adopt the BSDI hybridized model (which runs an interrupt
synchronously if possible and spools it to a thread otherwise) to
increase efficiency.
I outlined a way to keep the current spl/cpl mechanisms intact while
at the same time moving interrupts to a threading model in my SMP
document:
http://www.backplane.com/FreeBSD4/
http://www.backplane.com/FreeBSD4/smp-api.html
The mechanism I outline will allow interrupt execution concurrent
with supervisor execution, and allow interrupt execution concurrent
with other interrupts. For example, two different ethernet interrupts
could be taken concurrently with only minor spinlock controls
on the IF queue, and both could run concurrent with the TCP stack
(outside of the spl*() protected areas of the TCP stack).
The cool thing is that we can make the above work without gutting the
current spl*() mechanisms. Frankly, the moment we can take an ethernet
interrupt concurrent with the network stack, we win. The moment we can
take multiple concurrent ethernet interrupts, we win even more.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message