1:N threading

Daniel Eischen eischen at pcnet1.pcnet.com
Thu Apr 3 16:01:29 PST 2003


On Thu, 3 Apr 2003, Geoffrey C. Speicher wrote:

> On Thu, 3 Apr 2003, Daniel Eischen wrote:
> 
> > On Thu, 3 Apr 2003, Geoffrey C. Speicher wrote:
> > 
> > > OK, so we've got 1:N threading (libc_r), 1:1 threading (thr), and M:N
> > > threading (KSE).  Each model has its own merit depending on the
> > > application.
> > > 
> > > However, it would still be nice if the 1:N model didn't block the whole
> > > process when a thread blocks.  Is there any reason to hold onto a pure
> >                               ^ in the kernel.
> > 
> > > userland implementation of 1:N?  Can libc_r be implemented in terms of
> > > KSE?
> > 
> > Libc_r will go bye-bye.  The KSE library will give you 1:N
> > as long as you don't use pthread_setconcurrency() and don't
> > create any PTHREAD_SCOPE_PROCESS threads.
> 
> Two questions:
> 
>   1. You meant PTHREAD_SCOPE_SYSTEM, right?

Sorry, yes.  I always seem to make that mistake.

>   2. Does always using PTHREAD_SCOPE_PROCESS give 1:1 threading
>      that would also replace libthr?

Yes, it would give the same effect.  With the current
KSE architecture, there is a small overhead for scope
system threads, but with a few, probably minor, changes
to the kernel and UTS we can get rid of that.  Performance
tuning comes last :-)

-- 
Dan Eischen



More information about the freebsd-threads mailing list