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 src/sys/dev/cnw 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 ...

Robert Watson 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 mailing list