Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Oct 2004 14:02:37 -0400
From:      Kenneth Culver <culverk@sweetdreamsracing.biz>
To:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/pci if_de.c
Message-ID:  <20041019140237.60488wg8oss88ocg@www.sweetdreamsracing.biz>
In-Reply-To: <20041019174306.GK22681@funkthat.com>
References:  <200410182306.i9IN6DDx016512@repoman.freebsd.org> <20041019101752.e8ws08k8kcw8408c@www.sweetdreamsracing.biz> <20041019174306.GK22681@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting John-Mark Gurney <gurney_j@resnet.uoregon.edu>:

> Kenneth Culver wrote this message on Tue, Oct 19, 2004 at 10:17 -0400:
>> Quoting John-Mark Gurney <jmg@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.

Ken



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041019140237.60488wg8oss88ocg>