public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dan Kegel <dank@kegel.com>
To: Mark Hahn <hahn@physics.mcmaster.ca>, linux-kernel@vger.kernel.org
Subject: Re: debate on 700 threads vs asynchronous code
Date: Fri, 24 Jan 2003 00:21:49 -0800	[thread overview]
Message-ID: <3E30F79D.6050709@kegel.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0301232144470.8203-100000@coffee.psychology.mcmaster.ca>

Mark Hahn wrote:
> in principle, why should the footprint be large?  it's a register set
> and at most a couple cachelines of stack frame.

... but all the threads' cachelines will collide, whereas if
you're using nonblocking I/O, session state might be staggered better.
This is just a guess; I haven't measured it.

>>>does epoll provide a thunk (callback and state variable) as well as the 
>>>IO completion status?
>>
>>No.  It provides an event record containing a user-defined state pointer
>>plus the IO readiness status change (different from IO completion status).
>>But that's what you need; you can do the call yourself.
> 
> well, that means another syscall, which makes a footprint claim kind of moot,
> no?

What syscall?  You call sys_epoll once for every thousand events or so,
then you call your handler, which does a write or whatever.  No
extra syscall.

>>>>See http://www.kegel.com/c10k.html for an overview of the issue and some links.
>>>
>>>
>>>it's a great resource, except that for 700 clients, the difference
>>>between select, poll, epoll, aio are pretty moot.  no?
>>
>>Depends on how close to maximal performance you need, and whether
>>you might later need to scale to more clients.
> 
> 
> no, I'm suggesting the choice is nonlinear: that for moderately large loads,
> like 700 clients, there is no advantage to traditional approaches.

I agree that for 700 clients the answer may be different than for 2000 clients.
However, if you have to handle 700 clients, how do you know you won't
have to handle 2000 later?

In any case, benchmarking's the only way to go.  No amount of talk will
substitute for a good real-life measurement.  That's what convinced
me that epoll was faster than sigio, and that sigio was
sometimes slower than select() !

And, for what it's worth, programmer productivity is sometimes
more important than all the above.  I happen to work
at a place where performance is worth a lot of extra effort,
but other shops prefer to throw hardware at the problem and
not worry about that last 10%.

- Dan

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045


       reply	other threads:[~2003-01-24  7:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.44.0301232144470.8203-100000@coffee.psychology.mcmaster.ca>
2003-01-24  8:21 ` Dan Kegel [this message]
2003-01-24  8:26   ` debate on 700 threads vs asynchronous code Mark Mielke
2003-01-24 22:53     ` Corey Minyard
2003-01-24 23:21       ` Matti Aarnio
2003-01-24 23:29         ` Randy.Dunlap
2003-01-25  0:11           ` Dan Kegel
2003-01-29 21:32 Dan Kegel
  -- strict thread matches above, loose matches on Subject: below --
2003-01-29 17:26 Lee Chin
2003-01-30  9:36 ` Terje Eggestad
     [not found] <Pine.LNX.4.44.0301241840450.11758-100000@coffee.psychology.mcmaster.ca>
2003-01-25  0:24 ` Dan Kegel
     [not found] <Pine.LNX.4.44.0301232028480.980-100000@coffee.psychology.mcmaster.ca>
2003-01-24  2:04 ` Dan Kegel
2003-01-24  1:46 Dan Kegel
2003-01-24  0:07 Lee Chin
2003-01-23 23:19 Lee Chin
2003-01-23 23:28 ` Larry McVoy
2003-01-23 23:31 ` Ben Greear
2003-01-27  9:48 ` Terje Eggestad
2003-01-27 21:48   ` Bill Davidsen
2003-01-27 22:08 ` Bill Davidsen

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=3E30F79D.6050709@kegel.com \
    --to=dank@kegel.com \
    --cc=hahn@physics.mcmaster.ca \
    --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