Subject: CVS commit: src/sys
To: None <>
From: Paul Kranenburg <>
List: source-changes
Date: 12/30/2003 12:33:24
Module Name:	src
Committed By:	pk
Date:		Tue Dec 30 12:33:24 UTC 2003

Modified Files:
	src/sys/arch/acorn26/acorn26: machdep.c start.c
	src/sys/arch/algor/algor: machdep.c
	src/sys/arch/alpha/alpha: machdep.c pmap.c
	src/sys/arch/amd64/amd64: autoconf.c machdep.c
	src/sys/arch/amd64/include: cpu.h
	src/sys/arch/amiga/amiga: machdep.c
	src/sys/arch/amigappc/amigappc: machdep.c
	src/sys/arch/arc/arc: machdep.c
	src/sys/arch/arm/arm32: arm32_machdep.c
	src/sys/arch/atari/atari: machdep.c
	src/sys/arch/cesfic/cesfic: machdep.c
	src/sys/arch/cobalt/cobalt: machdep.c
	src/sys/arch/evbmips/alchemy: machdep.c
	src/sys/arch/evbmips/malta: machdep.c
	src/sys/arch/evbppc/explora: machdep.c
	src/sys/arch/evbppc/walnut: machdep.c
	src/sys/arch/evbsh5/evbsh5: machdep.c
	src/sys/arch/hp300/hp300: machdep.c
	src/sys/arch/hp700/hp700: machdep.c
	src/sys/arch/hpcmips/hpcmips: machdep.c
	src/sys/arch/i386/i386: autoconf.c machdep.c
	src/sys/arch/i386/include: cpu.h
	src/sys/arch/luna68k/luna68k: machdep.c
	src/sys/arch/mac68k/mac68k: machdep.c
	src/sys/arch/mips/mips: pmap.c
	src/sys/arch/mipsco/mipsco: machdep.c
	src/sys/arch/mvme68k/mvme68k: machdep.c
	src/sys/arch/news68k/news68k: machdep.c
	src/sys/arch/newsmips/newsmips: machdep.c
	src/sys/arch/next68k/next68k: machdep.c
	src/sys/arch/pc532/pc532: machdep.c
	src/sys/arch/pdp10/pdp10: machdep.c
	src/sys/arch/playstation2/playstation2: machdep.c
	src/sys/arch/pmax/pmax: machdep.c
	src/sys/arch/powerpc/ibm4xx: ibm40x_machdep.c
	src/sys/arch/powerpc/oea: oea_machdep.c
	src/sys/arch/sbmips/sbmips: machdep.c
	src/sys/arch/sgimips/sgimips: machdep.c
	src/sys/arch/sh3/sh3: pmap.c sh3_machdep.c
	src/sys/arch/sparc/sparc: machdep.c
	src/sys/arch/sparc64/sparc64: machdep.c
	src/sys/arch/sun2/sun2: machdep.c
	src/sys/arch/sun3/sun3: machdep.c
	src/sys/arch/sun3/sun3x: machdep.c
	src/sys/arch/vax/vax: machdep.c pmap.c
	src/sys/arch/x68k/x68k: machdep.c
	src/sys/conf: files param.c
	src/sys/kern: init_main.c vfs_bio.c vfs_subr.c
	src/sys/sys: buf.h sysctl.h
	src/sys/ufs/ext2fs: ext2fs_subr.c
	src/sys/ufs/ffs: ffs_alloc.c ffs_subr.c
	src/sys/ufs/lfs: lfs_balloc.c lfs_inode.c
	src/sys/uvm: uvm_glue.c uvm_pdaemon.c

Log Message:
Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.

To generate a diff of this commit:
cvs rdiff -r1.11 -r1.12 src/sys/arch/acorn26/acorn26/machdep.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/acorn26/acorn26/start.c
cvs rdiff -r1.25 -r1.26 src/sys/arch/algor/algor/machdep.c
cvs rdiff -r1.278 -r1.279 src/sys/arch/alpha/alpha/machdep.c
cvs rdiff -r1.205 -r1.206 src/sys/arch/alpha/alpha/pmap.c
cvs rdiff -r1.6 -r1.7 src/sys/arch/amd64/amd64/autoconf.c
cvs rdiff -r1.18 -r1.19 src/sys/arch/amd64/amd64/machdep.c
cvs rdiff -r1.2 -r1.3 src/sys/arch/amd64/include/cpu.h
cvs rdiff -r1.187 -r1.188 src/sys/arch/amiga/amiga/machdep.c
cvs rdiff -r1.25 -r1.26 src/sys/arch/amigappc/amigappc/machdep.c
cvs rdiff -r1.81 -r1.82 src/sys/arch/arc/arc/machdep.c
cvs rdiff -r1.41 -r1.42 src/sys/arch/arm/arm32/arm32_machdep.c
cvs rdiff -r1.131 -r1.132 src/sys/arch/atari/atari/machdep.c
cvs rdiff -r1.25 -r1.26 src/sys/arch/cesfic/cesfic/machdep.c
cvs rdiff -r1.48 -r1.49 src/sys/arch/cobalt/cobalt/machdep.c
cvs rdiff -r1.14 -r1.15 src/sys/arch/evbmips/alchemy/machdep.c
cvs rdiff -r1.16 -r1.17 src/sys/arch/evbmips/malta/machdep.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/evbppc/explora/machdep.c
cvs rdiff -r1.18 -r1.19 src/sys/arch/evbppc/walnut/machdep.c
cvs rdiff -r1.17 -r1.18 src/sys/arch/evbsh5/evbsh5/machdep.c
cvs rdiff -r1.176 -r1.177 src/sys/arch/hp300/hp300/machdep.c
cvs rdiff -r1.16 -r1.17 src/sys/arch/hp700/hp700/machdep.c
cvs rdiff -r1.84 -r1.85 src/sys/arch/hpcmips/hpcmips/machdep.c
cvs rdiff -r1.74 -r1.75 src/sys/arch/i386/i386/autoconf.c
cvs rdiff -r1.546 -r1.547 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.110 -r1.111 src/sys/arch/i386/include/cpu.h
cvs rdiff -r1.35 -r1.36 src/sys/arch/luna68k/luna68k/machdep.c
cvs rdiff -r1.294 -r1.295 src/sys/arch/mac68k/mac68k/machdep.c
cvs rdiff -r1.154 -r1.155 src/sys/arch/mips/mips/pmap.c
cvs rdiff -r1.39 -r1.40 src/sys/arch/mipsco/mipsco/machdep.c
cvs rdiff -r1.107 -r1.108 src/sys/arch/mvme68k/mvme68k/machdep.c
cvs rdiff -r1.47 -r1.48 src/sys/arch/news68k/news68k/machdep.c
cvs rdiff -r1.75 -r1.76 src/sys/arch/newsmips/newsmips/machdep.c
cvs rdiff -r1.65 -r1.66 src/sys/arch/next68k/next68k/machdep.c
cvs rdiff -r1.153 -r1.154 src/sys/arch/pc532/pc532/machdep.c
cvs rdiff -r1.3 -r1.4 src/sys/arch/pdp10/pdp10/machdep.c
cvs rdiff -r1.10 -r1.11 src/sys/arch/playstation2/playstation2/machdep.c
cvs rdiff -r1.207 -r1.208 src/sys/arch/pmax/pmax/machdep.c
cvs rdiff -r1.1 -r1.2 src/sys/arch/powerpc/ibm4xx/ibm40x_machdep.c
cvs rdiff -r1.12 -r1.13 src/sys/arch/powerpc/oea/oea_machdep.c
cvs rdiff -r1.22 -r1.23 src/sys/arch/sbmips/sbmips/machdep.c
cvs rdiff -r1.67 -r1.68 src/sys/arch/sgimips/sgimips/machdep.c
cvs rdiff -r1.49 -r1.50 src/sys/arch/sh3/sh3/pmap.c
cvs rdiff -r1.53 -r1.54 src/sys/arch/sh3/sh3/sh3_machdep.c
cvs rdiff -r1.241 -r1.242 src/sys/arch/sparc/sparc/machdep.c
cvs rdiff -r1.159 -r1.160 src/sys/arch/sparc64/sparc64/machdep.c
cvs rdiff -r1.31 -r1.32 src/sys/arch/sun2/sun2/machdep.c
cvs rdiff -r1.169 -r1.170 src/sys/arch/sun3/sun3/machdep.c
cvs rdiff -r1.93 -r1.94 src/sys/arch/sun3/sun3x/machdep.c
cvs rdiff -r1.143 -r1.144 src/sys/arch/vax/vax/machdep.c
cvs rdiff -r1.131 -r1.132 src/sys/arch/vax/vax/pmap.c
cvs rdiff -r1.123 -r1.124 src/sys/arch/x68k/x68k/machdep.c
cvs rdiff -r1.648 -r1.649 src/sys/conf/files
cvs rdiff -r1.43 -r1.44 src/sys/conf/param.c
cvs rdiff -r1.227 -r1.228 src/sys/kern/init_main.c
cvs rdiff -r1.99 -r1.100 src/sys/kern/vfs_bio.c
cvs rdiff -r1.212 -r1.213 src/sys/kern/vfs_subr.c
cvs rdiff -r1.65 -r1.66 src/sys/sys/buf.h
cvs rdiff -r1.103 -r1.104 src/sys/sys/sysctl.h
cvs rdiff -r1.11 -r1.12 src/sys/ufs/ext2fs/ext2fs_subr.c
cvs rdiff -r1.71 -r1.72 src/sys/ufs/ffs/ffs_alloc.c
cvs rdiff -r1.31 -r1.32 src/sys/ufs/ffs/ffs_subr.c
cvs rdiff -r1.46 -r1.47 src/sys/ufs/lfs/lfs_balloc.c
cvs rdiff -r1.80 -r1.81 src/sys/ufs/lfs/lfs_inode.c
cvs rdiff -r1.73 -r1.74 src/sys/uvm/uvm_glue.c
cvs rdiff -r1.55 -r1.56 src/sys/uvm/uvm_pdaemon.c

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