From: "David S. Miller" <davem@davemloft.net>
To: herbert@gondor.apana.org.au
Cc: netdev@oss.sgi.com
Subject: Re: issue with new TCP TSO stuff
Date: Thu, 12 May 2005 15:46:54 -0700 (PDT) [thread overview]
Message-ID: <20050512.154654.43008397.davem@davemloft.net> (raw)
In-Reply-To: <20050512214744.GA21958@gondor.apana.org.au>
From: Herbert Xu <herbert@gondor.apana.org.au>
Subject: Re: issue with new TCP TSO stuff
Date: Fri, 13 May 2005 07:47:44 +1000
> On Thu, May 12, 2005 at 01:13:49PM -0700, David S. Miller wrote:
> > One way to prevent that would be to do an skb_get() on every
> > SKB in the chain, but then we're back to the original problem
> > of all the extra atomic operations.
>
> You're being frugal Dave :) I was happy with one skb_clone per
> skb and you're having problems with skb_get? :)
>
> Seriously, we already do one skb_clone for every packet sent
> so we won't be incurring any extra overhead with this.
It's "relative to existing TSO" that this cost is. For the existing
TSO handling we do one atomic ref for the entire TSO frame. Now we're
going to do it for the N frames that a TSO packet is composed of.
So what this ends up meaning is that the new TSO code's only gain
(relative to non-TSO) will basically be that we:
1) Incur only one trip down the device XMIT path for N frames.
2) Only send one set of headers of the bus to the device.
Whereas the existing TSO support has a third benefit which is:
3) TSO frames are segmented as singular SKBs
This reduction in SKB allocations and subsequent handling is
non-trivial.
It has ramifications beyond the transmit path. When the ACKs
come back in, we do less kfree_skb() calls, for example. But
then again, we had all of that ugly TSO partial-ACK trimming
stuff.
I'm going to do some profiling to make sure it really matters.
next prev parent reply other threads:[~2005-05-12 22:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-12 5:30 issue with new TCP TSO stuff David S. Miller
2005-05-12 10:05 ` Herbert Xu
2005-05-12 20:13 ` David S. Miller
2005-05-12 21:47 ` Herbert Xu
2005-05-12 22:10 ` Herbert Xu
2005-05-12 22:52 ` David S. Miller
2005-05-12 23:10 ` Herbert Xu
2005-05-12 23:24 ` David S. Miller
2005-05-12 23:52 ` Herbert Xu
2005-05-13 4:36 ` David S. Miller
2005-05-13 13:25 ` Herbert Xu
2005-05-12 22:46 ` David S. Miller [this message]
2005-05-12 14:13 ` Andi Kleen
2005-05-12 19:26 ` David S. Miller
[not found] ` <20050512200251.GA72662@muc.de>
2005-05-12 20:03 ` David S. Miller
2005-05-12 20:26 ` Andi Kleen
2005-05-12 22:34 ` David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050512.154654.43008397.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).