Date: Mon, 20 Mar 2000 23:32:28 -0700 From: Wes Peters <wes@softweyr.com> To: Warner Losh <imp@village.org> Cc: Guido van Rooij <guido@gvr.org>, hackers@FreeBSD.ORG Subject: Re: splFoo() question Message-ID: <38D7177C.C7DD9BF1@softweyr.com> References: <38D6C5EB.E96A6514@softweyr.com> <20000320210008.A59405@gvr.gvr.org> <200003182031.NAA97975@harmony.village.org> <200003202057.NAA17486@harmony.village.org> <200003210156.SAA19697@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh wrote:
>
> In message <38D6C5EB.E96A6514@softweyr.com> Wes Peters writes:
> : > In message <20000320210008.A59405@gvr.gvr.org> Guido van Rooij writes:
> : > : perhaps we need some mutex mechanism?
> : >
> : > Yes. Right now the mutex mechanism that we have is blocking of
> : > interrupts when the bit is set in the cpl. I guess I'm a little too
> : > close to the mechanism and need to step back.
> : >
> : > You are right that I'm asking for a call that is approximately "block
> : > my interrupt handler from running until I say it is ok." A more
> : > generalized mutex/locking scheme is needed so that I can just grab a
> : > mutex in my code and in my ISR and the right thing will just happen.
> :
> : A per-driver mutex, perhaps? This would save us from potential
> : deadly embraces within a single driver, at least.
>
> We kinda sorta have this right now with the interrupt routine being
> blocked when the cpl is too high. I'd like to see this more
> generalized than it is today.
>
> However, jumping in and mucking with this code makes me nervous.
I'm much more familiar with VxWorks style device drivers, which typically
just give a "go" semaphore to an appropriate task that will then perform
the actual I/O in a task (think thread) context. It's a different kind
of beast from a typical UNIX driver model, but it goes a long way towards
avoiding interrupt livelock, since you can balance the priorities of the
threads doing the actual I/O.
This seems like a good place to point out how much kernel threads would
help. ;^)
--
"Where am I, and what am I doing in this handbasket?"
Wes Peters Softweyr LLC
wes@softweyr.com http://softweyr.com/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?38D7177C.C7DD9BF1>
