Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Nov 1996 22:29:55 +0800
From:      Peter Wemm <peter@spinner.dialix.com>
To:        Barney Wolff <barney@databus.com>
Cc:        freebsd-smp@freebsd.org
Subject:   Re: Thread issues 
Message-ID:  <199611251429.WAA01541@spinner.DIALix.COM>
In-Reply-To: Your message of "Mon, 25 Nov 1996 08:18:00 EST." <32999eda0.5633@databus.databus.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Barney Wolff wrote:
> The only reason I can conceive of to depart from standard APIs is if
> they are seriously broken, and I've seen no such claim.  As long as
> the Posix thread API is available, having it built on some more
> comfortable underlying proprietary API is fine - Unixware does it
> that way.  But not to have the Posix API available would condemn
> fbsd-smp to irrelevancy.

FreeBSD already has posix threads, BTW.  The challenge is to produce
a simple "back end" API for the thread library to work on multiple
cpus at once.  I think it would be a mistake to move the posix thread
API into the kernel...

> Of course, a great deal of the real work comes in making thread-safe
> versions of the C library, where possible.  Debate over APIs just
> adds delay - which is a good reason to go with the standard.

We already have a thread-safe C library.. (see libc_r)

What we are missing:
 1: the ability to do blocking IO within threads.  I wrote 95% of the code
    to support this, but never got around to finishing it due to some
    sticky efficiency problems with context switching in the kernel.
 2: the ability to have one program's threads execute on multiple cpus at
    once.  This becomes "easy" once #1 is done.
 3: a synchronisation back end.  We may not need kernel support for this
    if we use kernel-style locked bus cycle mutex operations in user mode.

I was working on part 1 for the non-smp kernel, since it was applicable to
both the normal and the smp kernel.  I have learned enough over the last 
few months to finish this now.  Part 2 is merely an extension of part 1.

Cheers,
-Peter



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