Re: [ANNOUNCE] Native POSIX Thread Library 0.1

Nikita Danilov
2002-09-24T09:57:08Z

Larry McVoy writes:
> > > Instead of taking the traditional "we've screwed up the normal system
> > > primitives so we'll event new lightweight ones" try this:
> > >
> > > We depend on the system primitives to not be broken or slow.
> > >
> > > If that's a true statement, and in Linux it tends to be far more true
> > > than other operating systems, then there is no reason to have M:N.
> >
> > No matter how fast you do context switch in and out of kernel and a sched
> > to see what runs next, it can't be done as fast as it can be avoided.
>
> You are arguing about how many angels can dance on the head of a pin.
> Sure, there are lotso benchmarks which show how fast user level threads
> can context switch amongst each other and it is always faster than going
> into the kernel. So what? What do you think causes a context switch in
> a threaded program? What? Could it be blocking on I/O? Like 99.999%
> of the time? And doesn't that mean you already went into the kernel to
> see if the I/O was ready? And doesn't that mean that in all the real
> world applications they are already doing all the work you are arguing
> to avoid?

M:N threads are supposed to have other advantages beside fast context
switches. Original paper on scheduler activations mentioned case when
kernel thread is preempted while user level thread it runs held spin
lock. When kernel notifies user level scheduler about preemption
(through upcall) it can de-schedule all user level threads spinning on
this lock, so that they will not waste their time slices burning CPU.

> --
> ---
> Larry McVoy lm at bitmover.com http://www.bitmover.com/lm

Nikita.

> -