netdev
[Top] [All Lists]

Re: tx_timeout and timer serialisation

To: Andrew Morton <andrewm@xxxxxxxxxx>
Subject: Re: tx_timeout and timer serialisation
From: Andi Kleen <ak@xxxxxx>
Date: Tue, 2 May 2000 16:47:36 +0200
Cc: kuznet@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <390EE5BB.2AF2F1CD@uow.edu.au>; from Andrew Morton on Tue, May 02, 2000 at 04:34:46PM +0200
References: <390EE5BB.2AF2F1CD@uow.edu.au>
Sender: owner-netdev@xxxxxxxxxxx
On Tue, May 02, 2000 at 04:34:46PM +0200, Andrew Morton wrote:
> I believe you are correct.  This is a good approach, because the mdio
> functions, although rarely called, are slow.
> 
> 3Com's GPL'ed driver for the 3c90x series is interesting.  They use four
> spinlocks.
> 
> - One for setting multicast mode
> - One for the start_xmit path
> - One for the interrupt
> - One for misc "recv mode/close/timer".

+ Inherent deadlock with disable_irq() [the driver likes to lock up under
high load on SMP] 

> 
> I haven't studied it closely; it's a _very_ differently structured
> driver from the norm.  I would guess that it has been ported from
> another OS.  They ifdef all the spinlocks out of existence if !__SMP__. 
> Interesting...

The Intel e100 driver does that too. It is probably wrong (interrupt can race
with TX) 


-Andi

<Prev in Thread] Current Thread [Next in Thread>