From: "Stephen D. Williams" <sdw@lig.net>
To: James Antill <james@and.org>
Cc: Michael Lindner <mikel@att.net>, Chris Wedgwood <cw@f00f.org>,
Dan Maas <dmaas@dcine.com>, Edgar Toernig <froese@gmx.de>,
linux-kernel@vger.kernel.org
Subject: Re: PROBLEM: select() on TCP socket sleeps for 1 tick even if data available
Date: Tue, 10 Apr 2001 14:29:45 -0400 [thread overview]
Message-ID: <3AD35119.D1C5E90D@lig.net> (raw)
In-Reply-To: <fa.nc2eokv.1dj8r80@ifi.uio.no> <fa.dcei62v.1s5scos@ifi.uio.no> <015e01c082ac$4bf9c5e0$0701a8c0@morph> <3A69361F.EBBE76AA@att.net> <20010120200727.A1069@metastasis.f00f.org> <3A694254.B52AE20B@att.net> <3A6A09F2.8E5150E@gmx.de> <022f01c08342$088f67b0$0701a8c0@morph> <20010121133433.A1112@metastasis.f00f.org> <3A6A558D.5E0CF29E@att.net> <3AD1CD13.F1A917FA@lig.net> <nnbsq5opdz.fsf@code.and.org>
James Antill wrote:
>
> "Stephen D. Williams" <sdw@lig.net> writes:
>
> > An old thread, but important to get these fundamental performance
> > numbers up there:
> >
> > 2.4.2 on an 800mhz PIII Sceptre laptop w/ 512MB ram:
> >
> > elapsed time for 100000 pingpongs is
> > 3.81327
> > 100000/3.81256
> > ~26229.09541095746689888159
> > 10000/.379912
> > ~26321.88506812103855629724
...
> I seemed to miss the original post, so I can't really comment on the
> tests. However...
It was a thread in January, but just ran accross it looking for
something else. See below for results.
> > Michael Lindner wrote:
...
> > > 0.052371 send(7, "\0\0\0
> > > \177\0\0\1\3243\0\0\0\2\4\236\216\341\0\0\v\277"..., 32, 0) = 32
> > > <0.000529>
> > > 0.000882 rt_sigprocmask(SIG_BLOCK, ~[], [RT_0], 8) = 0 <0.000021>
> > > 0.000242 rt_sigprocmask(SIG_SETMASK, [RT_0], NULL, 8) = 0
> > > <0.000021>
> > > 0.000173 select(8, [3 4 6 7], NULL, NULL, NULL) = 1 (in [6])
> > > <0.000047>
> > > 0.000328 read(6, "\0\0\0 ", 4) = 4 <0.000031>
> > > 0.000179 read(6,
> > > "\177\0\0\1\3242\0\0\0\2\4\236\216\341\0\0\7\327\177\0\0"..., 28) = 28
> > > <0.000075>
>
> The strace here shows select() with an infinite timeout, you're
> numbers will be much better if you do (pseudo code)...
>
> struct timeval zerotime;
>
> zerotime.tv_sec = 0;
> zerotime.tv_usec = 0;
>
> if (!(ret = select( ... , &zerotime)))
> ret = select( ... , NULL);
>
> ...basically you completely miss the function call for __pollwait()
> inside poll_wait (include/linux/poll.h in the linux sources, with
> __pollwait being in fs/select.c).
Apparently the extra system call overhead outweighs any benefit. In any
case, what you suggest would be better done in the kernel anyway. The
time went from 3.7 to 4.4 seconds per 100000.
>
> --
> # James Antill -- james@and.org
> :0:
> * ^From: .*james@and\.org
> /dev/null
--
sdw@lig.net http://sdw.st
Stephen D. Williams
43392 Wayside Cir,Ashburn,VA 20147-4622 703-724-0118W 703-995-0407Fax
Dec2000
next prev parent reply other threads:[~2001-04-10 19:31 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <fa.nc2eokv.1dj8r80@ifi.uio.no>
[not found] ` <fa.dcei62v.1s5scos@ifi.uio.no>
[not found] ` <015e01c082ac$4bf9c5e0$0701a8c0@morph>
2001-01-20 6:54 ` PROBLEM: select() on TCP socket sleeps for 1 tick even if data available Michael Lindner
2001-01-20 7:07 ` Chris Wedgwood
2001-01-20 7:46 ` Michael Lindner
2001-01-20 21:58 ` Edgar Toernig
2001-01-21 0:35 ` Dan Maas
2001-01-21 0:34 ` Chris Wedgwood
2001-01-21 1:22 ` Michael Lindner
2001-01-21 1:29 ` David Schwartz
2001-01-21 3:20 ` Michael Lindner
2001-04-09 14:54 ` Stephen D. Williams
2001-04-09 19:16 ` James Antill
2001-04-10 18:29 ` Stephen D. Williams [this message]
2001-04-10 20:25 ` James Antill
2001-04-11 21:03 ` Stephen D. Williams
2001-04-12 0:09 ` James Antill
2001-01-24 20:31 ` Boris Dragovic
[not found] ` <3A694357.1A7C6AAC@att.net>
2001-01-20 9:41 ` Dan Maas
2001-01-20 17:26 ` Michael Lindner
2001-01-24 23:56 Bernd Eckenfels
-- strict thread matches above, loose matches on Subject: below --
2001-01-20 10:53 Bernd Eckenfels
2001-01-19 20:47 Michael Lindner
2001-01-19 23:20 ` David Schwartz
2001-01-20 2:30 ` Michael Lindner
2001-01-20 3:27 ` David Schwartz
2001-01-20 4:37 ` Michael Lindner
2001-01-20 12:26 ` Martin MaD Douda
2001-01-20 11:39 ` Bjorn Wesen
2001-01-19 23:31 ` Chris Wedgwood
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=3AD35119.D1C5E90D@lig.net \
--to=sdw@lig.net \
--cc=cw@f00f.org \
--cc=dmaas@dcine.com \
--cc=froese@gmx.de \
--cc=james@and.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikel@att.net \
/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