Re: [patch 05/11] syslets: core code

From: Ingo Molnar
Date: Wed Feb 14 2007 - 19:07:51 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> > You are not counting the whole setup cost there, then, because your
> > setup cost is going to be at a minimum more expensive than the null
> > system call.
>
> hm, this one-time cost was never on my radar. [ It's really dwarved by
> other startup costs (a single fork() takes 100 usecs, an exec() takes
> 800 usecs.) ]

i really count this into the category of 'application startup', and thus
it's is another type of 'cachemiss': the cost of having to bootstrap a
new context. (Even though obviously we want this to go as fast as
possible too.) Library startups, linking (even with prelink), etc., is
quite expensive already - goes into the tens of milliseconds.

or if it's a new thread startup - where this cost would indeed be
visible, if the thread exits straight after being startup up, and where
this thread would want to do a single AIO, then shareable async heads
(see my mail to Alan) ought to solve this. (But short-lifetime threads
are not really a good idea in themselves.)

but the moment it's some fork()ed context, or even an exec()ed context,
this cost is very small in comparisno. And who in their right mind
starts up a whole new process just to do a single IO and then exit
without doing any other processing? (so that the async setup cost would
show up)

but, short-lived contexts, where this cost would be visible, are
generally a really bad idea.

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/