Document move to per-CPU statistics in malloc(9), as well as the use of

critical sections instead of mutexes for the per-CPU statistics data,
present in 6.0.

Prodded by:	joel
This commit is contained in:
Robert Watson 2005-07-01 09:13:54 +00:00
parent c3b10d3886
commit fdba7ed1e3
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=24993

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.12 2005/06/27 18:39:27 keramida Exp $">
<!ENTITY date "$FreeBSD: www/en/projects/netperf/index.sgml,v 1.13 2005/07/01 09:09:52 rwatson Exp $">
<!ENTITY title "FreeBSD Network Performance Project (netperf)">
<!ENTITY email 'mux'>
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
@ -229,6 +229,27 @@
of allocation on SMP is dramatically reduced. </td>
</tr>
<tr>
<td> Modify malloc(9) allocator to use per-CPU statistics with
critical sections to protect malloc_type statistics rather than
global statistics with a mutex. </td>
<td> &a.rwatson; </td>
<td> 20050529 </td>
<td> &status.done; </td>
<td> Previously, malloc(9) used a single statistics structure
protected by a mutex to hold global malloc statistics for each
malloc type. This change moves to per-CPU statistics structures,
which are coalesced when reporting memory allocation statistics to
the user, and protects them using critical sections. This reduces
cache line contention for common allocation types by avoiding
shared lines, and also reduces synchronization costs by using
critical sections to synchronize access instead of a mutex. While
malloc(9) is less frequently used in the network stack than uma(9),
it is used for socket address data, so is on performance critical
paths for datagram operations. This has been committed and will
appear in 6.0-RELEASE. </td>
</tr>
<tr>
<td> Optimize critical section performance </td>
<td> &a.jhb; </td>