mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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>


  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®