* Ingo Molnar <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/