From: "David S. Miller" <davem@davemloft.net>
To: netdev@oss.sgi.com
Subject: issue with new TCP TSO stuff
Date: Wed, 11 May 2005 22:30:36 -0700 (PDT) [thread overview]
Message-ID: <20050511.223036.39664020.davem@davemloft.net> (raw)
It's more expensive than the old code. And I know the main reason.
There is a higher cost now because we do a large number of page
refcount grabs and releases now, that never occurred before. Before,
we just cloned and thus grabbed a ref to the whole TSO data area in
one go.
This shows up in testing where the connection is application limited.
For example, an "scp" goes more slowly over TSO now, there are less
cpu cycles available for the encryption.
It's tricky to come up with a scheme to fix this. I would love to be
able to not do the page grabs/releases in the actual TSO frame. I
really haven't come up with a clean way to do that however.
Basically, if we could somehow delay the freeing of the actual SKBs in
the socket write queue until the device frees up the TSO frame, we
could avoid the page gets and puts. Almost all the time, this delay
would never actually be needed, because the ACKs come back _long_
after the device liberates the TSO frame. But it can due to packet
taps, packet reordering, and other reasons. So we do have to handle
it.
I don't know, maybe we can do something clever with the
skb_shinfo(skb)->frag_list pointer.
Any bright ideas? :-)
next reply other threads:[~2005-05-12 5:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-12 5:30 David S. Miller [this message]
2005-05-12 10:05 ` issue with new TCP TSO stuff 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
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=20050511.223036.39664020.davem@davemloft.net \
--to=davem@davemloft.net \
--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).