netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* issue with new TCP TSO stuff
@ 2005-05-12  5:30 David S. Miller
  2005-05-12 10:05 ` Herbert Xu
  2005-05-12 14:13 ` Andi Kleen
  0 siblings, 2 replies; 17+ messages in thread
From: David S. Miller @ 2005-05-12  5:30 UTC (permalink / raw)
  To: netdev


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? :-)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2005-05-13 13:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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).