Update with recent KSE progress.

This commit is contained in:
Daniel Eischen 2003-08-30 12:07:36 +00:00
parent e313023f05
commit 512548b4b4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=18026

View file

@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD: www/en/kse/index.sgml,v 1.13 2003/07/06 21:25:56 blackend Exp $">
<!ENTITY date "$FreeBSD: www/en/kse/index.sgml,v 1.14 2003/07/13 15:34:47 stephane Exp $">
<!ENTITY title "FreeBSD KSE Project">
<!ENTITY email 'mini'>
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
@ -48,7 +48,7 @@
<p>The goal is to replace the current user threading system provided by
the libc_r library, and the <tt>-pthread</tt> gcc option, with a new
libpthread library which will be linked with the <tt>-lpthread</tt>
gcc option.
gcc option.</p>
<a name="using"></a>
<h2>Using KSE</h2>
@ -56,23 +56,14 @@
<p>All KSE development is being done in 5.0-CURRENT. No special
kernel configuration options are required to build a kernel with
the KSE-related changes (the changes are inextricable from the
FreeBSD scheduler).
FreeBSD scheduler).</p>
<p>In order to use KSE in an application, you need to link it against
libpthreads, which is not built by default. To build and install it
on your system, either run <tt>make all install</tt> from
<span class="filename">/usr/src/lib/libpthread</span> (if you have
sources installed on your system), or check out the
<span class="filename">libpthread</span> and
<span class="filename">libc</span> modules from CVS. You don't need to
rebuild libc, but the libpthread makefiles refer to parts of the
libc sources.</p>
<p>Linking an application against libpthread is straightforward. In its
makefiles, change the <tt>-pthread</tt> option to <tt>-lpthread</tt>
and relink. Alternatively, you can copy libpthread.so on top of
libc_r.so, but this is not recommended until libpthread.so becomes a
bit more stable.
libpthread; this is straightforward. In the application's makefile(s),
change the <tt>-pthread</tt> compiler switch or <tt>-lc_r</tt> link
option to <tt>-lpthread</tt> and relink. Alternatively, you can use
<tt>/etc/libmap.conf</tt> to map libc_r to libpthread (see
<tt>libmap.conf(5)</tt>).</p>
<a name="further.reading"></a>
<h2>Further Reading</h2>
@ -169,27 +160,43 @@
</tr>
<tr>
<td> libpthread </td>
<td> Implement machine-dependent functions for non-x86 platforms. </td>
<td> libpthread, kernel </td>
<td> Implement alpha machine-dependent functions. </td>
<td> &a.marcel; </td>
<td> 28 June 2003 </td>
<td> 30 Aug 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> kernel </td>
<td> Implement machine-dependent functions for non-x86 platforms. </td>
<td> &a.marcel; </td>
<td> 28 June 2003 </td>
<td> &status.wip; </td>
<td> libpthread, kernel </td>
<td> Implement amd64 machine-dependent functions. </td>
<td> &a.davidxu; &a.deischen; </td>
<td> 30 Aug 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> &nbsp; </td>
<td> Port NetBSD's liblwp to FreeBSD/KSE. </td>
<td> &nbsp; </td>
<td> 2 November 2002 </td>
<td> &status.new; </td>
<td> libpthread, kernel </td>
<td> Implement i386 machine-dependent functions. </td>
<td> &a.davidxu; &a.deischen; </td>
<td> 30 Aug 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread, kernel </td>
<td> Implement ia64 machine-dependent functions. </td>
<td> &a.marcel; </td>
<td> 30 Aug 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread, kernel </td>
<td> Implement sparc64 machine-dependent functions. </td>
<td> &a.jake; </td>
<td> 30 Aug 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
@ -212,8 +219,8 @@
<td> kernel </td>
<td> Efficient scope system threads (no upcalls when they block). </td>
<td> &a.davidxu; </td>
<td> 3 May 2003 </td>
<td> &status.wip; </td>
<td> 30 Aug 2003 </td>
<td> &status.done; </td>
</tr>
<!--