libthread 1:1 threads

David Leimbach dleimbac at gmail.com
Fri Apr 22 15:02:16 PDT 2005


On 4/22/05, Julian Elischer <julian at elischer.org> wrote:
> 
> 
> David Leimbach wrote:
> 
> >Perhaps David Xu could clue me in a bit more :)
> >
> >I just got around to reading the status report for FreeBSD and the 1:1
> >threading caught my eye.
> >
> >I'm not terribly familiar with FreeBSD's KSE based threading but
> >rather than adding a new system call [which may be ok... though I've
> >worked on systems where a minimal set of system calls is the desired
> >approach.. usually microkernels] would it be possible to add KSEs to a
> >task using rfork()?
> >
> >
> 
> KSE and 1:1 threading are different things.
> One creatres kernel threads on demand and the other keeps the kernel
> threads all the time the user thread exists.
> 

Ah interesting.

> rfork is not the same.. it creates a new process context. that is what
> Linux does.
> it is also what we did before when running the the linuxthreads package.
> 

According to the man page, and plan 9 where rfork originated you can
use it to modify an extant process.  In fact you have to set the
RFPROC flag to make a new process or all the changes apply to the
current one.

Either that or the man page is wrong.

> KSE and 1:1 use a lot of the same kernel changes and entities.
> Which one survives will be  judged in time.
> 
> >Maybe I've just been playing around with Plan 9 too much lately :)
> >
> >Anyway, I like that there will be a 1:1 threading library and if I had
> >more free time and wasn't working on other projects I'd be more than
> >willing to help test and work on/with this.
> >
> >
> 
> there has been a 1:1 and an M:N library since 5.2
> 

Yeah but I took a bit of a FreeBSD hiatus around 5.0/5.1 and am just
now poking around again so it's all new to me :).

Dave


More information about the freebsd-hackers mailing list