From: Andi Kleen <ak@muc.de>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@oss.sgi.com
Subject: Re: [PATCH] Super TSO
Date: Wed, 18 May 2005 15:43:21 +0200 [thread overview]
Message-ID: <m1fywk645i.fsf@muc.de> (raw)
In-Reply-To: <20050517.192416.108741581.davem@davemloft.net> (David S. Miller's message of "Tue, 17 May 2005 19:24:16 -0700 (PDT)")
"David S. Miller" <davem@davemloft.net> writes:
> I did some cross-continent (San Francisco --> east coast of US)
> transfers to make sure TSO stays on when packet drops occur and that
> performance doesn't suffer compared to TSO being off. It all looks
> fine so far.
It would be interesting to see what happens with moderate packet loss
(= e.g. conditions handled by fast retransmit). That would
lead to occasional "bubbles" in the pipeline. How long would
your algorithm need to refill it then? I suppose this is a common
case on internet servers.
>
> There were many bugs discovered along the way. For example, the
> I moved all of the "should we send" logic privately into the file
> net/ipv4/tcp_output.c, and I am sure there are many simplifications
Thanks that was long overdue, thanks. tcp.h still has too much
inline code though :/
And congratulations for getting rid of the "if() from hell"
in the send check.
> possible. There are several spurious tcp_current_mss() calls scattered
It does far too much work for the common cases too. Similar
is true for the ACK logic in the input path. I think quite
a few cycles could be saved here (although it probably doesn't matter
much anymore on modern boxes because they don't result in cache misses,
so any improvements might end up in the noise)
> @@ -674,59 +653,274 @@ unsigned int tcp_sync_mss(struct sock *s
> * cannot be large. However, taking into account rare use of URG, this
> * is not a big flaw.
> */
> +static inline u32 compute_xmit_cache(u32 mss, int sacks, int tso_enabled)
> +{
> + u32 ret = (mss << 16) | sacks;
16bit MSS? How does that deal with jumbopackets on IPv6?
While the MSS option is also 16bit it is legal to construct bigger
datagrams when no MSS option was exchanged.
-Andi
next prev parent reply other threads:[~2005-05-18 13:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-18 2:24 [PATCH] Super TSO David S. Miller
2005-05-18 13:43 ` Andi Kleen [this message]
2005-05-18 19:57 ` David S. Miller
2005-05-20 0:15 ` Leonid Grossman
2005-05-20 0:21 ` David S. Miller
2005-05-20 0:36 ` Leonid Grossman
2005-05-20 0:55 ` David S. Miller
2005-05-20 1:25 ` Leonid Grossman
2005-05-20 1:28 ` David S. Miller
2005-05-20 0:45 ` Rick Jones
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=m1fywk645i.fsf@muc.de \
--to=ak@muc.de \
--cc=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).