cvs commit: src/sys/pci if_de.c

John-Mark Gurney gurney_j at resnet.uoregon.edu
Tue Oct 19 10:43:08 PDT 2004


Kenneth Culver wrote this message on Tue, Oct 19, 2004 at 10:17 -0400:
> Quoting John-Mark Gurney <jmg at FreeBSD.org>:
> 
> >jmg         2004-10-18 23:06:13 UTC
> >
> >  FreeBSD src repository
> >
> >  Modified files:
> >    sys/pci              if_de.c
> >  Log:
> >  fix (for me) the problems where if_de gets really slow after time
> >  (usually taking 20 seconds to transmit a packet).. no longer fall back
> >  to only transmitting one packet (instead of the entire queue) after we
> >  have processed the entire send queue...  I have no idea why we didn't
> >  start seeing this problem ~6 years ago when this code was introduced...
> 
> Do you get an error on boot with this device about it running in Giant. I 
> was
> seeing similar problems to you and I was seeing a message at boot about this
> device running in Giant, so I set debug.mpsafenet to 0, and the problem went
> away.

yes, I do:
de0: <Digital 21140A Fast Ethernet> port 0xd800-0xd87f mem 0xe8000000-0xe800007f
 irq 10 at device 9.0 on pci0
de0: [GIANT-LOCKED]
de0: 21140A [10-100Mb/s] pass 2.2
de0: Ethernet address: 00:c0:f0:1f:21:f9
de0: if_start running deferred for Giant

but even with those messages about Giant, we did find that the interface
ioctl was being called w/o Giant...  also, the warning about Giant
mean that the network subsystem is suppose to call all of the driver's
routines w/ Giant held to appear as if debug.mpsafenet has been set to 0..

I have a patch that addes some Giant requireds, but they can't be commited
till the ioctl problem is fixed...

If you are interested in tracking down the bug, I'll be more than happy
to review and commit any changes...  The driver needs to be both locked
and busdma'ified...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the cvs-src mailing list