netdev
[Top] [All Lists]

Re: [PATCH] acenic - don't spin in hard_start_xmit when ring fills

To: "David S. Miller" <davem@xxxxxxxxxxxxx>
Subject: Re: [PATCH] acenic - don't spin in hard_start_xmit when ring fills
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Fri, 17 Sep 2004 09:02:17 -0700
Cc: jes@xxxxxxxxxxxxxxxxxx, jgarzik@xxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20040916165042.362a3e79.davem@xxxxxxxxxxxxx>
Organization: Open Source Development Lab
References: <20040916161753.37254cbd@xxxxxxxxxxxxxxxxxxxxx> <20040916162250.5b7cfa85.davem@xxxxxxxxxxxxx> <20040916164206.707204d4@xxxxxxxxxxxxxxxxxxxxx> <20040916165042.362a3e79.davem@xxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Thu, 16 Sep 2004 16:50:42 -0700
"David S. Miller" <davem@xxxxxxxxxxxxx> wrote:

> On Thu, 16 Sep 2004 16:42:06 -0700
> Stephen Hemminger <shemminger@xxxxxxxx> wrote:
> 
> > NO, the bus just isn't fast enough to keep up with the number of small
> > packets I am shoving at it.
> > 
> > You got TX_LOCKED and TX_BUSY confused. The problem is drivers that
> > don't check to see if the last packet sent fills the ring and stop
> > themselves.
> 
> I understand.
> 
> But that still makes this change buggy.  I believe the two choices
> are:
> 
> 1) Accept this spinning performance characteristic of the
>    acenic driver.

What if there is buggy, hardware that never drains the ring.
It can happen.

> 2) Finally give up on acenic's clever lockless scheme and add
>    the necessary locking + start/stop tx flow control so it
>    will never have to return TX_BUSY except in absolutely
>    catastrophic failure cases.

I'll code up a non-lockless version and see if makes any real difference.

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