public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Chase Douglas <cndougla@purdue.edu>
To: lkml <linux-kernel@vger.kernel.org>
Subject: TCP prequeue performance
Date: Wed, 15 Jun 2005 15:31:07 -0500	[thread overview]
Message-ID: <BED5FA3B.2A0%cndougla@purdue.edu> (raw)

I've been working with tcp_recvmsg trying to implement a new feature. While
implementing this and benchmarking, I found something rather odd. I've
created a benchmark which connects to a server 100,000 times receiving two
10,000 byte messages each time. I used the time program to find out how much
system time was being used during the receives. The first data shows the
statistics on a normal receive call:

time ./client 10000 10000 100000 1 500000000 recv

real    1m27.301s
user    0m1.568s
sys     0m13.464s

I then disabled the prequeue mechanism by changing net/ipv4/tcp.c:1347 of
2.6.11:

if (tp->ucopy.task == user_recv) {
    to
if (0 && tp->ucopy.task == user_recv) {

The same benchmark then yielded:

time ./client 10000 10000 100000 1 500000000 recv

real    1m21.928s
user    0m1.579s
sys     0m8.330ss

Note the decreases in the system and real times. These numbers are fairly
stable through 10 consecutive benchmarks of each. If I change message sizes
and number of connections, the difference can narrow or widen, but usually
the non-prequeue beats the prequeue with respect to system and real time.

It might be that I've just found an instance where the prequeue is slower
than the "slow" path. I'm not quite sure why this would be. Does anyone have
any thoughts on this?

Thanks



             reply	other threads:[~2005-06-15 20:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-15 20:31 Chase Douglas [this message]
2005-06-15 20:51 ` TCP prequeue performance David S. Miller
2005-06-15 23:34 ` Andi Kleen
2005-06-15 23:41   ` David S. Miller
2005-06-16  0:23     ` Andi Kleen

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=BED5FA3B.2A0%cndougla@purdue.edu \
    --to=cndougla@purdue.edu \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox