cvs commit: src/sys/pci if_de.c

John-Mark Gurney gurney_j at resnet.uoregon.edu
Tue Oct 19 11:15:33 PDT 2004


Kenneth Culver wrote this message on Tue, Oct 19, 2004 at 14:02 -0400:
> Quoting John-Mark Gurney <gurney_j at resnet.uoregon.edu>:
> 
> >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...
> >
> Well the machine I'm using this interface on is in a production machine. If 
> I
> can find another card and put it in my personal machine I'll see if I 
> can track
> down the problem. However I haven't done any kernel work in BSD since 
> 4.x, so it
> might take me a while to come up to speed on the locking and busdma'ing.

If you need some pointers, I'll be happy to answer them...  there is a
man page for busdma(9), so that should make things easier...  and of
course for locking there is mutex(9)...

-- 
  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