Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

Evgeniy Polyakov
2007-02-27T08:11:36Z

On Mon, Feb 26, 2007 at 12:04:51PM -0800, Linus Torvalds (torvalds@linux-foundation.org) wrote:
>
>
> On Mon, 26 Feb 2007, Evgeniy Polyakov wrote:
> >
> > Will you argue that people do things like
> > num = epoll_wait()
> > for (i=0; i<num; ++i) {
> > process(event[i])?
> > }
>
> I have several times told you that I argue for a *combination* of
> event-bassed interfaces and thread-like code. And that the choice depends
> on which is more natural. Sometimes you might have just one or the other.
> Sometimes you have both. And sometimes you have neither (although,
> strictly speaking, normal single-threaded code is certainly "thread-like"
> - it's a serial execution, the same way threadlets are serial executions -
> it's just not running in parallel with anything else).
>
> > Will you spawn thread per IO?
>
> Depending on what the IO is, yes.
>
> Is that _really_ so hard to understand? There is no "yes" or "no". There's
> a "depends on what the problem is, and what the solution looks like".
>
> Sometimes the best way to do parallelism is through explicit threads.
> Sometimes it is through whatever "threadlets" or other that gets out of
> this whole development discussion. Sometimes it's an event loop.
>
> So get over it. The world is not a black and white, either-or kind of
> place. It's full of grayscales, and colors, and mixing things
> appropriately. And the choices are often done on whims and on whatever
> feels most comfortable to the person doing the choice. Not on some strict
> "you must always use things in an event-driven main loop" or "you must
> always use threads for parallelism".
>
> The world is simply _richer_ than that kind of either-or thing.

It seems you like to repeate that white is white and it is not black :)
Did you see what I wrote in previous e-mail to you?

No, you do not.
I wrote that both model should co-exist, and boundary between the two is
not clear, but for described workloads IMO event driven model provides
way too higher performance.

That is it, Linus, no one wants to say that you say something stupid -
just read what others write for you.

Thanks.

> Linus

--
Evgeniy Polyakov