Subject: CVS commit: src/sys
To: None <>
From: Chuck Silvers <>
List: source-changes
Date: 11/13/2003 02:44:02
Module Name:	src
Committed By:	chs
Date:		Thu Nov 13 02:44:02 UTC 2003

Modified Files:
	src/sys/kern: subr_pool.c
	src/sys/sys: pool.h
	src/sys/uvm: uvm_map.c

Log Message:
two changes in improve scalability:

 (1) split the single list of pages allocated to a pool into three lists:
     completely full, partially full, and completely empty.
     there is no longer any need to traverse any list looking for a
     certain type of page.

 (2) replace the 8-element hash table for out-of-page page headers
     with a splay tree.

these two changes (together with the recent enhancements to the wait code)
give us linear scaling for a fork+exit microbenchmark.

To generate a diff of this commit:
cvs rdiff -r1.87 -r1.88 src/sys/kern/subr_pool.c
cvs rdiff -r1.40 -r1.41 src/sys/sys/pool.h
cvs rdiff -r1.150 -r1.151 src/sys/uvm/uvm_map.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.