splxxx level?

M. Warner Losh imp at bsdimp.com
Mon Aug 30 15:08:35 PDT 2004


In message: <Pine.LNX.4.60.0408301548440.4347 at athena>
            Sam <sah at softcardsystems.com> writes:
: Wow guys, this is great stuff, thanks!
: 
: Here's what I've discovered so far and again,
: correct me if I'm wrong.
: 
: In strategy, I need to protect from my callout
: and netisr running.  In my netisr, I need to
: protect from my callout running.  In my callout,
: I need to protect from my netisr running.
: 
: It looks like I can use splnet() everywhere *except*
: where I'm pulling mbufs off of the mbuf queue in the
: netisr routine.  There I'll have to use splimp() to
: keep from banging heads with the hardware.
: 
: I think this is the optimum spl-ing as it will allow
: the network hardware to keep queueing up packets as I
: process them.  Comments?

I'd be more inclined to use splimp() in all places because the network
code depends on it.  There are some subtle dependencies that one will
run into if one only uses splnet().

Warner


More information about the freebsd-arch mailing list