Skip site navigation (1)Skip section navigation (2)
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>