Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Mar 1999 11:24:31 -0500 (EST)
From:      Alfred Perlstein <bright@rush.net>
To:        hackers@freebsd.org
Subject:   splimp is overkill?
Message-ID:  <Pine.BSF.3.96.990320111437.28176D-100000@cygnus.rush.net>

next in thread | raw e-mail | index | archive | help

I was looking at some networking code recently and noticed something...

it seems that splimp has to raised for individual drivers, but 
splimp blocks out all driver interupts correct?

Why not have a function that just locks an individual network
driver out of getting interupts instead of the whole slew
of drivers?

I noticed this looking at sys/net/if_tun.c

The QUEUE macros need splimp, but we know what interface we are
working on, why not just 'splimp' that ONE interface?

Also has anyone given thought to individual driver mbuf pools?

Yes, it's sort of evil, but it also reduces the need to lock
up the whole network stack.  If you can allocate on your own
pool of mbufs, instead of a global pool
you can avoid blocking the entire networking stack.

Now you may ask, well since mbufs "travel around" who gets them
when they are freed? well you can maintain high and low watermarks
for attempting to distribute or take from other drivers.

This isn't a solution, just an idea.

This would also help SMP if done properly imo.

Comments?  If anything flames explaining why this is a bad idea are
welcome, I just want to understand more. 

thank you,
Alfred Perlstein - Admin, coder, and admirer of all things BSD.
-- There are operating systems, and then there's FreeBSD.
-- http://www.freebsd.org/                        4.0-current



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?Pine.BSF.3.96.990320111437.28176D-100000>