Subject: Re: libpthread
To: None <tech-kern@netbsd.org>
From: William Henny <willhenny@yahoo.com>
List: tech-kern
Date: 06/24/2003 19:00:53
In article <OF671BD924.D59CE0D8-ON65256D4E.0029DCD6-80256D4E.0042ABBE@in.ibm.com>, Kamal R Prasad wrote:
> Frank van der Linden <fvdl@netbsd.org>
> Sent by: tech-kern-owner@netbsd.org
> 06/21/2003 01:49 AM
>  
>         To:     Matthias Buelow <mkb@mukappabeta.de>
>         cc:     current-users@netbsd.org, tech-kern@netbsd.org
>         Subject:        Re: libpthread
> 
>  
> 
> On Sat, Jun 21, 2003 at 02:47:08AM +0200, Matthias Buelow wrote:
>> But are there solid plans underway to give NetBSD 1x1
>> and MxN kernel threading
> 
>>MxN is what the SA code does, so NetBSD currently does that. The issue
>>is that it's not release quality yet. 1x1 has been possible for a while
>>with the clone(2) system call. It's Linux compatible, so you could
>>compile linuxthreads on NetBSD with some minor adjustments.
> 
> If you have MxN support, then thats good news.
> Linux 2.4.1 assigns a single thread to each thread/process created in 
> user-space. The code in Linux is release-quality, but the design is awful.

Why the specific reference to Linux 2.4.1? LinuxThreads predates that kernel
by two or three years.

> and like all things linux, there is a major overhaul underway to fix that 
> problem.

Overhaul? LinuxThreads is being discarded.

An interesting article on the development of posix threading in Linux:

     http://www.onlamp.com/pub/a/onlamp/2002/11/07/linux_threads.html

I believe the latest offerings from Red Hat already uses NPTL, while all of
the distributions will be using it come 2.6.

As for the fate of NGPT:

     http://www-124.ibm.com/pthreads/docs/announcement

I think it says something when two programmers at Red Hat came up with an
implementation around the 1:1 model that greatly outperformed the M:N
implementation of the IBM/Intel folks, and in much shorter time.

And then there's Solaris' move from a M:N to a 1:1 model, as the former
proved very difficult to debug, and the 1:1 implementation they came up with
performed better anyway.