Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Feb 2003 12:54:10 -0800
From:      David Schultz <dschultz@uclink.Berkeley.EDU>
To:        Narvi <narvi@haldjas.folklore.ee>
Cc:        Dag-Erling Smorgrav <des@ofug.org>, freebsd-chat@FreeBSD.ORG
Subject:   N:M vs. 1:1 threading (was: Re: Project status)
Message-ID:  <20030205205410.GA1825@HAL9000.homeunix.com>
In-Reply-To: <20030205201148.F43637-100000@haldjas.folklore.ee>
References:  <xzp4r7kuf3l.fsf@flood.ping.uio.no> <20030205201148.F43637-100000@haldjas.folklore.ee>

next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake Narvi <narvi@haldjas.folklore.ee>:
> 
> On Tue, 4 Feb 2003, Dag-Erling Smorgrav wrote:
> 
> >  - KSE ("kernel scheduled entities") is a threading architecture, both
> >    for in-kernel threads and for mapping userland threads onto kernel
> >    threads (which allows splitting one application across multiple
> >    CPUs; our current thread library doesn't).  I don't know of any
> >    substantial opposition against KSE.  There are some concerns that
> >    the M-on-N model is not really better than the 1-on-1 model,
> >    especially now that Solaris has switched to the latter, and that
> >    KSE is over-engineered and possibly out of the reach of a team of
> >    (relatively) amateur volunteers.  Otherwise, complaints regarding
> >    KSE are mostly about how much time it's taking to implement, and
> >    concerns that the KSE developers aren't subjecting their code to
> >    sufficient testing before committing it.  Note that I'm neither
> >    confirming or refuting any of these claims, just reporting what
> >    other people are saying about KSE.
> >
> 
> the N:M and especially the 1:1 models are also slightly simplified
> pictures. I think this is also a cyclical development problem - at some
> point using 1:1 threads is insufficent and/or doesn't give acceptable
> perfomace so the move to N:M happens. At some point later, kernel based
> threads are again sufficently perfomant that N:M becomes unnecessary
> complexity.
> 
> Linux/*BSD are just a cycle behind Solaris in this area. Ultimately the
> cycles don't matter, what matters is the perfomance and capabilities you
> deliver.

Actually, in the case of Solaris, bugs are what matter.  After all
of these years, they never ironed all of the nits out of the LWP
implementation, but their 1:1 threading implementation just works,
and has no outstanding problem reports.  Maybe FreeBSD will have
the same problems.  But from a performance point of view, you can
get much cheaper threads, with fewer protection boundary crossings
and cheaper context switches, with a UTS.  SA happens to be a very
nice abstraction for getting it right (LWPs that really are
/light/) and hopefully that is reflected in what we will
eventually get.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030205205410.GA1825>