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>