Re: Softnet/eepro100 driver conversion bug in 2.3.43pre8?

From: Andrey Savochkin (saw@sw.com.sg)
Date: Sat Feb 26 2000 - 01:31:06 EST


Hi,

On Fri, Feb 25, 2000 at 01:00:24PM -0500, Jeff Garzik wrote:
> Simon Kirby wrote:
> >
> > After fiddling around in speedo_start_xmit with moving the spin_unlock()
> > around, I figured out a way to fix the timeout problems I was seeing on
> > 2.3 ever since the softnet merge. Andi Kleen then noticed the actual
> > problem and pointed out the correct way to fix it. Attached is a patch
> > that works perfectly for me for fixing the timeouts with the eepro100.
> >
> > Previously, I could run "ping -s 3000 -f foo" and see a timeout within a
> > second or two; now, I have yet to see a timeout. The driver still oopses
> > on rmmod, but that's been happening for a while now.
>
> Good spotting... can you try something slightly different?
>
> In speedo_start_xmit, make the logic look this like...
>
> ...
> if (tx_full_condition)
> netif_stop_queue(dev)
> ...
>
> That should be the _only_ start or stop queue in speedo_start_xmit.
>
> In order for this change to be complete, you need to go over the
> spinlocking to make sure it protects stuff (mainly stuff on the transmit
> side), and also make sure the interrupt handlers looks like this...
>
> if (! tx_full_condition)
> netif_wake_queue (dev)
>
> ie. no netif_stop_queue calls in the interrupt handler.

I've implemented this idea in my version of the driver (located at
ftp://ftp.nc.orc.ru/pub/Linux/people/saw/kernel/ )
However I haven't tested it well with a softnet kernel.

Best regards
                                        Andrey V.
                                        Savochkin

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:15 EST