From: Tom Quetchenbach <virtualphtn@gmail.com>
To: netdev@vger.kernel.org
Subject: [PATCH 0/2] David Miller's rbtree patches for 2.6.22.6
Date: Wed, 19 Sep 2007 18:39:01 -0700 [thread overview]
Message-ID: <46F1CF35.3030606@gmail.com> (raw)
Hello,
I've been experimenting with David Miller's red-black tree patch for
SACK processing. We're sending TCP traffic between two machines with
10Gbps cards over a 1Gbps bottleneck link and were getting very high CPU
load with large windows. With a few tweaks, this patch seems to provide
a pretty substantial improvement. David: this seems like excellent work
so far.
Here are a couple of patches against 2.6.22.6. The first one is just
David's patches tweaked for 2.6.22.6, with a couple of minor bugfixes to
get it to compile and not crash. (I also changed
__tcp_insert_write_queue_tail() to set the fack_count of the new packet
to the fack_count of the tail plus the packet count of the tail, not the
packet count of the new skb, because I think that's how it was intended
to be. Right?
In the second patch there are a couple of significant changes. One is
(as Baruch suggested) to modify the existing SACK fast path so that we
don't tag packets we've already tagged when we advance by a packet.
The other issue is that the cached fack_counts seem to be wrong, because
they're set when we insert into the queue, but tcp_set_tso_segs() is
called later, just before we send, so all the fack_counts are zero. My
solution was to set the fack_count when we advance the send_head. Also I
changed tcp_reset_fack_counts() so that it exits when it hits an skb
whose tcp_skb_pcount() is zero or whose fack_count is already correct.
(This really helps when TSO is on, since there's lots of inserting into
the middle of the queue.)
Please let me know how I can help get this tested and debugged. Reducing
the SACK processing load is really going to be essential for us to start
testing experimental TCP variants with large windows.
Thanks
-Tom
next reply other threads:[~2007-09-20 1:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-20 1:39 Tom Quetchenbach [this message]
2007-09-20 1:42 ` [PATCH 1/2] David Miller's rbtree patches for 2.6.22.6 Tom Quetchenbach
2007-09-20 1:44 ` [PATCH 2/2] " Tom Quetchenbach
2007-09-21 13:48 ` Ilpo Järvinen
2007-09-20 21:27 ` [PATCH 1/2 revised] " Tom Quetchenbach
2007-09-21 13:37 ` [PATCH 1/2] " Ilpo Järvinen
2007-09-21 14:08 ` [PATCH 0/2] " Ilpo Järvinen
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=46F1CF35.3030606@gmail.com \
--to=virtualphtn@gmail.com \
--cc=netdev@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.