Date: Sun, 26 Mar 2000 12:48:42 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Nikolai Saoukh <nms@otdel-1.org> Cc: freebsd-current@FreeBSD.ORG Subject: Re: Is there spinlocks/semaphores available for drivers? Message-ID: <200003262048.MAA33563@apollo.backplane.com> References: <20000326223650.A17200@Draculina.otdel-1.org> <200003261920.LAA32887@apollo.backplane.com> <20000327003157.A17420@Draculina.otdel-1.org>
next in thread | previous in thread | raw e-mail | index | archive | help
: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 <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003262048.MAA33563>