From c3b10d3886cc55560b1a4aeea7cd7d503a392d53 Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Fri, 1 Jul 2005 09:09:52 +0000 Subject: [PATCH] Update critical section and UMA optimization tasks from "Prototyped" to "Done", as they have been committed since April, resulting in measurable network performance improvements in 6.x. Prodded by: joel --- en/projects/netperf/index.sgml | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/en/projects/netperf/index.sgml b/en/projects/netperf/index.sgml index c2e37b703f..ac8a8b228f 100644 --- a/en/projects/netperf/index.sgml +++ b/en/projects/netperf/index.sgml @@ -1,6 +1,6 @@ - + %includes; @@ -216,24 +216,24 @@ Modify UMA allocator to use critical sections not mutexes for per-CPU caches. &a.rwatson; - 20041124 - &status.prototyped; + 20050429 + &status.done; The mutexes protecting per-CPU caches require atomic operations on SMP systems; as they are per-CPU objects, the cost of synchronizing access to the caches can be reduced by combining - CPU pinning and/or critical sections instead. A prototype of this - has been implemented in the rwatson_percpu branch, but is waiting - on critical section performance optimizations that will prevent - this change from negatively impacting uniprocessor performance. - The critical section operations from John Baldwin have been posted - for public review. + CPU pinning and/or critical sections instead. This change has now + been committed and will appear in 6.0-RELEASE; it results in a + several percentage performance in UDP send from user space, and + there have been reports of 20%+ improvements in allocation + intensive code within the kernel. In micro-benchmarks, the cost + of allocation on SMP is dramatically reduced. Optimize critical section performance &a.jhb; - 20041124 - &status.prototyped; + 20050404 + &status.done; Critical sections prevent preemption of a thread on a CPU, as well as preventing migration of that thread to another CPU, and maybe used for synchronizing access to per-CPU data structures, as @@ -247,10 +247,8 @@ cheaper to enter. In particular, this change will lower the cost of critical sections on UP such that it is approximately the same cost as a mutex, meaning that optimizations on SMP to use critical - sections instead of mutexes will not harm UP performance. A - prototype of this change is present in the jhb_lock Perforce - branch, and patches have been posted to per-architecture mailing - lists for review. + sections instead of mutexes will not harm UP performance. This + change has now been committed, and will appear in 6.0-RELEASE.