diff --git a/en/projects/ideas/ideas.xml b/en/projects/ideas/ideas.xml index 7ef20af860..660b225a51 100644 --- a/en/projects/ideas/ideas.xml +++ b/en/projects/ideas/ideas.xml @@ -15,7 +15,7 @@ Ideas//EN" - $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 $ @@ -444,6 +444,42 @@ these buses to be a subclass of this new base class.

+ + SMP scalability improvements for core primitives + +

Technical contact: Attilio Rao, John Baldwin.

+ +

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.

+ +

Note: a spinlock backoff patch has already been proposed, but not + yet properly evaluated, and would make a good starting point for + this work.

+ +

Requirements:

+
    +
  • Strong knowledge of C.
  • +
  • Experience with multi-threaded programming.
  • +
  • Experience with kernel programming.
  • +
+
+
+ Document all sysctls