[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1382381375.3284.79.camel@edumazet-glaptop.roam.corp.google.com>
Date: Mon, 21 Oct 2013 11:49:35 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Jimmy PERCHET <jimmy.perchet@...rot.com>
Cc: Giuseppe CAVALLARO <peppe.cavallaro@...com>, netdev@...r.kernel.org
Subject: Re: [PATCH RFC 3/5] net:stmmac: ensure we reclaim all dirty
descriptors.
On Mon, 2013-10-21 at 11:32 -0700, Eric Dumazet wrote:
> On Mon, 2013-10-21 at 15:10 +0200, Jimmy PERCHET wrote:
> > Hello Peppe,
> >
>
> > I can reproduce this problem by issuing 9KiB jumbo frames on 10MBit/s link.
> > If socket's wmemory size is about 500kiB (or less), the transfer stall.
> > (I guess it is reproducible with 1500o frames by decreasing
> > socket's wmemory to 90KB)
> > Re-arming the timer fix this behaviour.
> >
> > Here my understanding of this issue :
> > With 9KiB frames and 500kiB of wmemory, only 60 frames can be
> > prepared in a row. It is below the tx coalescence threshold,
> > so there will be no interrupt. When the tx coalescence timer
> > expires (40ms after), only five descriptors have to be
> > freed (9000*5 @ 10Mbit/s = 34ms), it is not enough to reach
> > the socket's wake-up threshold. We get into a deadlock :
> > *Socket is waiting for free buffers before performing new transfer.
> > *Driver is waiting for new transfer before performing cleanup.
> >
> > Maybe, it is not a real life use-case, and is not worth
> > a patch. What do you think ?
> >
>
> I think there is probably a bug in the driver, a race of some sort,
> and it would be better to find it and fix it ;)
>
coalesce params should not be hardcoded, but depend on link speed and
mtu.
On 10Mbits, and MTU=9000 there is really no point using coalescing !
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists