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
This commit is contained in:
Robert Watson 2005-07-01 09:09:52 +00:00
parent f4859284c7
commit c3b10d3886
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=24992

View file

@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/en/projects/netperf/index.sgml,v 1.11 2005/01/31 12:08:35 rwatson Exp $">
<!ENTITY date "$FreeBSD: www/en/projects/netperf/index.sgml,v 1.12 2005/06/27 18:39:27 keramida Exp $">
<!ENTITY title "FreeBSD Network Performance Project (netperf)">
<!ENTITY email 'mux'>
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
@ -216,24 +216,24 @@
<td> Modify UMA allocator to use critical sections not mutexes for
per-CPU caches. </td>
<td> &a.rwatson; </td>
<td> 20041124 </td>
<td> &status.prototyped; </td>
<td> 20050429 </td>
<td> &status.done; </td>
<td> 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. </td>
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. </td>
</tr>
<tr>
<td> Optimize critical section performance </td>
<td> &a.jhb; </td>
<td> 20041124 </td>
<td> &status.prototyped; </td>
<td> 20050404 </td>
<td> &status.done; </td>
<td> 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. </td>
sections instead of mutexes will not harm UP performance. This
change has now been committed, and will appear in 6.0-RELEASE. </td>
</tr>
</table>