libthr and 1:1 threading.

Terry Lambert tlambert2 at mindspring.com
Thu Apr 3 14:21:30 PST 2003


Peter Wemm wrote:
> Terry Lambert wrote:
> > I have to ask:
> >
> > Why is it so important to people that the libthr performance
> > gains be impossible to achieve without use of the 1:1 model,
> > rather than a modification of libc_r, or avoidance of existing
> > kernel latencies?
> 
> Cost vs. Benefit is a big factor.  As Jeff has shown, writing a functional
> 1:1 libthr is significantly easier than M:N or the other alternatives.
> Easier to write, easier to maintain, easier to understand, easier to debug,
> and *good enough*.  Its all very well for somebody to sit on the sidelines
> and say what we should be doing, but when it comes down to actually doing
> it, we're the ones in the hot seat and actually have to write it and
> maintain it and debug it.  kse based threads or async call gates or
> whatever are almost certainly more efficient at runtime, but we've got to
> get to the 'running' point first.  A mathematical proof is no use to
> somebody who wants threaded mysql or java or mozilla to work well.  Neither
> is an unstable thread library.  At the end of the day working code is what
> counts, and the more highly ambitious threading systems have to pay the
> development, debugging and maintenence cost to get there.


The libthr code would not have been possible, without the KSE
kernel work which has already been done.  Jeff acknowledged
this at the time he posted the code for the implementation.

At that point, all we are arguing is about who won the race
to a userland implementation that at least works.  But whatever
userland library is there is only possible because of the KSE
project efforts so far; e.g. the relationship is:

,-------------------------------------------------------.
|                       |               |               |
|        libc_r         |  KSE pthreads |     libthr    |
|                       |               |               |U
|-------------------------------------------------------|-
|              |                                        |K
| Old kernel   |            KSE kernel                  |
|              |                                        |
`-------------------------------------------------------'


> May the best code win!

Of course.  As it should be.  8-).

-- Terry


More information about the freebsd-arch mailing list