HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd))

Robert Watson rwatson at FreeBSD.org
Sun May 25 09:58:57 UTC 2008


On Sat, 24 May 2008, Peter Wemm wrote:

>> FWIW, I suspect fixing things like SLIP and kernel PPP are fairly trivial 
>> once tty locking is in place -- a per-softc mutex and a bit of locking in 
>> the obvious spots would likely do it without too much trouble.  In some 
>> paths, it might be necessary to inject data via the netisr, if that's not 
>> already being done (probably is) to avoid input/output lock order issues.
>
> ppp_tty.c is kind of hairy and rather stale.  I'd be inclined to drop strong 
> hints about switching to either userland ppp(8), or mpd + netgraph if you 
> want packets to stay in the kernel path and avoid userland.
>
> I was once a big user of pppd(8) and if_ppp.c / ppp_tty.c and maintained 
> them for a while.  But I use ppp(8) now and have no interest in maintaining 
> it anymore.
>
> pppd/if_ppp.c/ppp_tty.c is many many years stale compared to what its vendor 
> supplies.
>
> And, I think if_sl.c could probably do the same treatment.  It would 
> probably be a better investment in time to write a userland slip driver and 
> if_tun.c and/or write a ng_slip.c module

While I'd be quite supportive of something along these lines, I think it 
probably is more work to port SLIP to userspace than to hack the current code 
a little bit to be MPSAFE, assuming it remains supported with the revised tty 
code.  SLIP is a fairly straight-forward piece of code, as long as you don't 
try to understand the line discipline stuff. :-)

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-net mailing list