Subject: Re: bad TSO performance in 2.6.9-rc2-BK

From: "David S. Miller" <[email-masked]>
Date: Wed, 29 Sep 2004 14:22:52 -0700

On Wed, 29 Sep 2004 14:16:55 -0700
Nivedita Singhvi <[email-masked]> wrote:

> That was my point to Herbert, Dave - that we can't
> rely on Nagle - either we're triggering too early
> and not utilizing TSO MTU or we're triggering too
> late (waiting for the full TSO frame) depending
> on whether we use standard or TSO mss..
> 
> We need some heuristic to do partial sends under
> TSO. Is that what you are addressing?

It's partial "ACK" of a TSO frame that cause congestion
window and socket buffer allocation issues.

We handle partial sends by just limiting the TSO mss
to never be larger than the congestion window.

We need to handle ACK'ing issues by:

1) Keeping track of "real mss" packet ACKs of TSO
   frames.  This is implemented currently by advancing
   the sequence number of the TSO SKB in the retransmit
   queue.

2) What I'm working on now, which is to liberate send buffer
   socket space when we do partial acking in #1

I need to see the crash folks are seeing.  Does it only happen
when you have tcpdump attached to the interface running the
test?  Does it happen only on the sender or the receiver
in the netperf test?  Those would be a good clues, indicating
some SKB sharing bug I've created or similar.

Thanks.