[Top] [All Lists]

Re: issue with new TCP TSO stuff

To: davem@xxxxxxxxxxxxx (David S. Miller)
Subject: Re: issue with new TCP TSO stuff
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 12 May 2005 20:05:48 +1000
Cc: netdev@xxxxxxxxxxx
In-reply-to: <20050511.223036.39664020.davem@xxxxxxxxxxxxx>
Organization: Core
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: tin/1.7.4-20040225 ("Benbecula") (UNIX) (Linux/2.4.27-hx-1-686-smp (i686))
Hi Dave:

I've got a number of comments for your patch which I will send once
I've finished reading it all.

David S. Miller <davem@xxxxxxxxxxxxx> wrote:
> I don't know, maybe we can do something clever with the
> skb_shinfo(skb)->frag_list pointer.

This was in fact going to be one of my comments :) 

What we could do is get the TSO drivers to all implement NETIF_F_FRAGLIST.
Once they do that, you can simply chain up the skb's and send it off to
them.  The coalescing will need to be done in the drivers.  However, that's
not too bad because coalescing only has to be done at the skb boundaries.

In fact, this is how we can simplify the unwinding stuff in your
skb_append_pages function.  Because the coalescing only needs to occur
between skb's, you only need to check the first frag to know whether it
can be coalesced or not.  This means that the unwinding stuff can mostly
go away.

We'll have to watch out for retransmissions of the frame with a non-null
frag_list pointer.  They will need to be copied if their clone is still
hanging around.

Visit Openswan at
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page:
PGP Key:

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