From ee4a78998eebb12bbc55e47e8c154c5e119cc5c9 Mon Sep 17 00:00:00 2001
From: Robert Watson
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:
+