Resend with subject: No more non-MPSAFE network device drivers,
rwatson at FreeBSD.org
Mon May 22 13:46:27 UTC 2006
This e-mail is just to remind device driver authors of something that I hope
they were already aware of: as FreeBSD has been shipping with a network stack
largely capable of running without Giant since the 5.x series, we will no
longer be accepting new network device drivers that require Giant compatibility
to function. This is true both for UP and SMP systems.
Non-MPSAFE network device driver compatibility adds significant overhead to the
operation of the network stack, and non-MPSAFE network device drivers pay a
very high overhead to operate in the current environment. The compatibility
code also complicates calling components which do not hold Giant, especially
with regard to management ioctls.
We have also discussed requiring that all network device drivers in the system
for 7.0 be able to operate MPSAFE. This runs into some issues due to
non-MPSAFEty of some key device driver subsystems, including Firewire, USB, and
the TTY subsystem. Poul-Henning is in the process of working on MPSAFE tty
support, and I hope that people will step up to the plate to work on the
remaining subsystems in the near future. That way we will be able to remove
the compatibility code, and continue cleanup and optimization work.
Robert N M Watson
More information about the freebsd-arch