cvs commit: src/sys/dev/an if_an.c src/sys/dev/arl if_arl_isa.c
src/sys/dev/awi if_awi_pccard.c src/sys/dev/cm if_cm_isa.c
if_cnw.c src/sys/dev/cp if_cp.c src/sys/dev/cs if_cs.c src/sys/dev/ed
if_ed.c src/sys/dev/em if_em.c ...
rwatson at FreeBSD.org
Tue Sep 20 14:31:15 PDT 2005
On Tue, 20 Sep 2005, John Baldwin wrote:
> Regarding other comments I saw today on some e-mail or another, I do
> think that to make the locking sane, we might should push the checks for
> IFF_DRV_RUNNING down into the foo_start() routines rather than doing it
> in the network layer where the driver lock isn't held.
This was a change I was thinking of trying to get into 6.0 a few weeks
ago, but was worried that wholesale frobbing of the network interface
drivers would introduce too many bugs. Also, it will increase the cost of
injecting packets into the send queue under load as you'll always have to
acquire and drop the driver mutex to test the flag. I.e., it's not clear
we're actually racing, but we might pay a hefty cost for fixing it. If
you want to take a cut at it, I'm happy to help characterize the cost and
decide if it's the right thing to do. It would be nice to get it into 6.0
if possible as it will become part of the device driver API if so.
Robert N M Watson
More information about the cvs-all