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:
parent
f4859284c7
commit
c3b10d3886
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=24992
1 changed files with 13 additions and 15 deletions
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue