From: Lincoln Dale <ltd@cisco.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Dan Kegel <dank@kegel.com>, <mingo@elte.hu>,
"David S. Miller" <davem@redhat.com>, bcrl <bcrl@redhat.com>,
billh <billh@tierra.ucsd.edu>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-aio <linux-aio@kvack.org>
Subject: Re: aio
Date: Thu, 20 Dec 2001 15:02:10 -0800 [thread overview]
Message-ID: <4.3.2.7.2.20011220145246.02b62350@171.69.24.15> (raw)
In-Reply-To: <Pine.LNX.4.33.0112201354420.1545-100000@penguin.transmeta. com>
In-Reply-To: <4.3.2.7.2.20011220133542.02c03ef0@171.69.24.15>
At 01:59 PM 20/12/2001 -0800, Linus Torvalds wrote:
>On Thu, 20 Dec 2001, Lincoln Dale wrote:
> >
> > SIGIO sucks in the real-world for a few reasons right now, most of them
> > unrelated to 'sigio' itself:
>
>Well, there _is_ one big one, which definitely is fundamentally related to
>sigio itself:
>
>sigio is an asynchronous event programming model.
>
>And let's face it, asynchronous programming models suck. They inherently
>require that you handle various race conditions etc, and have extra
>locking.
actually, i disagree with your assertion that "asyncronous programming
models suck".
for MANY applications, it doesn't matter. the equivalent to async is to do
either:
- thread-per-connection or process-per-connection (ala apache, sendmail,
inetd-type services, ...)
- a system that blocks -- handles one-connection-at-a-time
the only time async actually starts to matter is if you start to stress the
precipitous performance characteristics associated with thousands of
concurrent tasks in a thread/process-per-connection model. (limited
processor L2 cache size, multiple tasks sharing the same cache-lines
(suboptimal cache colouring), scheduler overhead, wasted
stack-space-per-thread/process, ..).
if you care about that level of performance, then you generally move to an
async model.
moving to an async model doesn't have to be hard -- people generally start
with their own pseudo scheduler and go from there.
"harder" than non-async: yes. but "hard": no.
>SIGIO just isn't very nice. It's useful for some event notification (ie if
>you don't actually _do_ anything in the signal handler), but let's be
>honest: it's an extremely heavy notifier. Something synchronous like
>"poll" or "select" will beat it just about every time (yes, they don't
>scale well, but neither does SIGIO).
actually, my experience (circa 12 months ago) was that they were roughly equal.
poll()'s performance dropped off significantly at a few thousand FDs
whereas sigio's latency just went up.
but it was somewhat trivial to _make_ poll() go faster by being intelligent
about what fd's to poll. simple logic of "if a FD didn't have anything
active, don't poll for it on the next poll() loop" didn't increase the
latency in servicing that FD by any noticable amount but basically triples
the # of FDs one could handle.
cheers,
lincoln.
NB. sounds like you're making a case for the current trend in Java Virtual
Machines insistance on "lots of processes" being a good thing. <grin, duck,
run>
next prev parent reply other threads:[~2001-12-20 23:09 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20011218020456.A11541@redhat.com>
2001-12-18 16:50 ` Scheduler ( was: Just a second ) Linus Torvalds
2001-12-18 16:56 ` Rik van Riel
2001-12-18 17:18 ` Linus Torvalds
2001-12-18 19:04 ` Alan Cox
2001-12-18 21:02 ` Larry McVoy
2001-12-18 21:18 ` Rik van Riel
2001-12-19 17:44 ` IRC (was: Scheduler) Daniel Phillips
2001-12-19 17:51 ` Larry McVoy
2001-12-19 18:24 ` Daniel Phillips
2001-12-19 18:19 ` M. Edward (Ed) Borasky
2001-12-19 18:27 ` Daniel Phillips
2001-12-19 18:40 ` J Sloan
2001-12-18 21:14 ` Scheduler ( was: Just a second ) David S. Miller
2001-12-18 21:17 ` Larry McVoy
2001-12-18 21:19 ` Rik van Riel
2001-12-18 21:30 ` David S. Miller
2001-12-19 16:50 ` Daniel Phillips
[not found] ` <Pine.LNX.4.33.0112190859050.1872-100000@penguin.transmeta.com>
2001-12-19 18:57 ` aio Ben LaHaise
2001-12-19 19:29 ` aio Dan Kegel
2001-12-20 4:04 ` aio Benjamin LaHaise
2001-12-19 20:09 ` aio Daniel Phillips
2001-12-19 20:21 ` aio Davide Libenzi
2001-12-19 20:23 ` aio Pete Zaitcev
2001-12-20 0:13 ` aio David S. Miller
2001-12-20 0:21 ` aio Benjamin LaHaise
2001-12-20 0:36 ` aio Andrew Morton
2001-12-20 0:55 ` aio H. Peter Anvin
2001-12-20 0:47 ` aio Davide Libenzi
2001-12-20 1:16 ` aio Bill Huey
2001-12-20 1:20 ` aio David S. Miller
2001-12-20 2:26 ` aio Bill Huey
2001-12-20 2:37 ` aio Cameron Simpson
2001-12-20 2:45 ` aio David S. Miller
2001-12-19 18:57 ` aio John Heil
2001-12-20 3:06 ` aio David S. Miller
2001-12-19 19:30 ` aio John Heil
2001-12-20 3:21 ` aio Bill Huey
2001-12-27 9:36 ` aio Martin Dalecki
2001-12-20 5:29 ` aio David S. Miller
2001-12-20 3:07 ` aio Bill Huey
2001-12-20 3:13 ` aio David S. Miller
2001-12-20 3:47 ` aio Benjamin LaHaise
2001-12-21 17:24 ` aio Alan Cox
2001-12-21 17:16 ` aio Benjamin LaHaise
2001-12-23 5:35 ` aio Bill Huey
2001-12-20 5:39 ` aio David S. Miller
2001-12-20 5:58 ` aio Benjamin LaHaise
2001-12-20 6:00 ` aio David S. Miller
2001-12-20 6:46 ` aio Mike Castle
2001-12-20 6:55 ` aio Robert Love
2001-12-20 7:13 ` aio Mike Castle
2001-12-20 7:01 ` aio David S. Miller
2001-12-20 7:27 ` aio Daniel Phillips
[not found] ` <Pine.LNX.4.33.0112201127400.2656-100000@localhost.localdomain>
2001-12-20 11:49 ` aio William Lee Irwin III
2001-12-20 16:32 ` aio Dan Kegel
2001-12-20 18:05 ` aio Davide Libenzi
2001-12-20 21:45 ` aio Lincoln Dale
2001-12-20 21:59 ` aio Linus Torvalds
2001-12-24 11:44 ` aio Gerold Jury
2001-12-20 23:02 ` Lincoln Dale [this message]
2001-12-20 14:38 ` aio Luigi Genoni
2001-12-20 17:26 ` aio Henning Schmiedehausen
2001-12-20 20:04 ` aio M. Edward (Ed) Borasky
2001-12-20 23:53 ` aio David S. Miller
2001-12-21 0:28 ` Offtopic Java/C# [Re: aio] Bill Huey
2001-12-20 5:16 ` aio Pete Zaitcev
2001-12-20 16:16 ` aio Dan Kegel
2001-12-21 11:44 ` aio Gerold Jury
2001-12-21 13:48 ` aio Ingo Molnar
2001-12-21 15:27 ` aio Gerold Jury
2001-12-24 11:08 ` aio Gerold Jury
2001-12-20 17:24 ` aio Henning Schmiedehausen
2001-12-20 2:47 ` aio David S. Miller
2001-12-20 2:52 ` aio Cameron Simpson
2001-12-20 2:58 ` aio David S. Miller
2001-12-20 5:47 ` aio Linus Torvalds
2001-12-20 5:57 ` aio David S. Miller
2001-12-20 5:59 ` aio Benjamin LaHaise
2001-12-20 6:02 ` aio David S. Miller
2001-12-20 6:07 ` aio Benjamin LaHaise
2001-12-20 6:09 ` aio Linus Torvalds
2001-12-20 17:28 ` aio Suparna Bhattacharya
2001-12-20 6:12 ` aio David S. Miller
2001-12-20 6:23 ` aio Linus Torvalds
2001-12-20 10:18 ` aio Ingo Molnar
2001-12-20 18:20 ` aio Robert Love
2001-12-20 22:30 ` aio Cameron Simpson
2001-12-20 22:46 ` aio Benjamin LaHaise
2001-12-20 5:07 ` aio Pete Zaitcev
2001-12-20 5:10 ` aio Cameron Simpson
2001-12-21 17:28 ` aio Alan Cox
2001-12-23 5:46 ` aio Bill Huey
2001-12-23 6:34 ` aio Dan Kegel
2001-12-23 18:43 ` aio Davide Libenzi
2001-12-26 20:42 ` Java and Flam^H^H^H^H AIO (was: aio) Daniel Phillips
2001-12-18 19:11 ` Scheduler ( was: Just a second ) Mike Galbraith
2001-12-18 19:15 ` Rik van Riel
2001-12-18 22:32 ` in defense of the linux-kernel mailing list Ingo Molnar
2001-12-18 17:55 ` Scheduler ( was: Just a second ) Davide Libenzi
2001-12-18 19:43 ` Alexander Viro
2001-12-20 2:56 aio Mikael Pettersson
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=4.3.2.7.2.20011220145246.02b62350@171.69.24.15 \
--to=ltd@cisco.com \
--cc=bcrl@redhat.com \
--cc=billh@tierra.ucsd.edu \
--cc=dank@kegel.com \
--cc=davem@redhat.com \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@transmeta.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
all inboxes | Powered by JetHome®