Combine two suggestions from Attilio for potential SMP-related GSoC

projects, and list him and jhb as potential contacts.
This commit is contained in:
Robert Watson 2010-03-20 12:02:16 +00:00
parent 38fc545e52
commit ee4a78998e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=35531

View file

@ -15,7 +15,7 @@ Ideas//EN"
<ideas>
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
<cvs:keyword name="freebsd">
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.145 2010/03/14 15:52:47 rwatson Exp $
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.146 2010/03/15 17:58:35 imp Exp $
</cvs:keyword>
</cvs:keywords>
@ -444,6 +444,42 @@ these buses to be a subclass of this new base class.</p>
</desc>
</idea>
<idea id="scalableprimitives" class="soc">
<title>SMP scalability improvements for core primitives</title>
<desc>
<p><strong>Technical contact</strong>: <a
href="mailto:attilio@FreeBSD.org">Attilio Rao</a>, <a
href="mailto:jhb@FreeBSD.org">John Baldwin</a>.</p>
<p>FreeBSD SMP scalability has improved dramatically over the last
ten years as a result of the now-complete SMPng project, which
converted FreeBSD from a single Giant kernel lock to fine-grained
locking and strong 8-core scalability. As commodity hardware is
now reaching 16-24 cores, some low-level primitives in the SMP
implementation must be revisited. In particular, 32 or 64-CPU
limits are encoded in the CPU mask primitive (cpumask_t), and
spin locks offer higher than desired cache line contention as well
as unfairness. This project would combine these two related tasks
by improving the expressibility of CPU masks and per-CPU objects
and improving the scalability of the spinlock implementation. It
is especially important that the latter portion of the work be
driven by real-world measurement using workloads that trigger the
specific problem, and experimentation with primitives across
several types of hardware.</p>
<p>Note: a spinlock backoff patch has already been proposed, but not
yet properly evaluated, and would make a good starting point for
this work.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Strong knowledge of C.</li>
<li>Experience with multi-threaded programming.</li>
<li>Experience with kernel programming.</li>
</ul>
</desc>
</idea>
<idea id="docsysctl">
<title>Document all sysctls</title>
<desc>