freebsd-nq/sys/conf
Alan Cox 2446e4f02c Enable the new physical memory allocator.
This allocator uses a binary buddy system with a twist.  First and
foremost, this allocator is required to support the implementation of
superpages.  As a side effect, it enables a more robust implementation
of contigmalloc(9).  Moreover, this reimplementation of
contigmalloc(9) eliminates the acquisition of Giant by
contigmalloc(..., M_NOWAIT, ...).

The twist is that this allocator tries to reduce the number of TLB
misses incurred by accesses through a direct map to small, UMA-managed
objects and page table pages.  Roughly speaking, the physical pages
that are allocated for such purposes are clustered together in the
physical address space.  The performance benefits vary.  In the most
extreme case, a uniprocessor kernel running on an Opteron, I measured
an 18% reduction in system time during a buildworld.

This allocator does not implement page coloring.  The reason is that
superpages have much the same effect.  The contiguous physical memory
allocation necessary for a superpage is inherently colored.

Finally, the one caveat is that this allocator does not effectively
support prezeroed pages.  I hope this is temporary.  On i386, this is
a slight pessimization.  However, on amd64, the beneficial effects of
the direct-map optimization outweigh the ill effects.  I speculate
that this is true in general of machines with a direct map.

Approved by:	re
2007-06-16 04:57:06 +00:00
..
defines
files Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
files.amd64 Use default options for default partitioning schemes, rather than 2007-06-11 00:38:06 +00:00
files.arm opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.i386 Use default options for default partitioning schemes, rather than 2007-06-11 00:38:06 +00:00
files.ia64 LINT on ia64 requires memset symbol too. Make fire it is present by adding 2007-04-09 14:02:18 +00:00
files.pc98 Use default options for default partitioning schemes, rather than 2007-06-11 00:38:06 +00:00
files.powerpc sort. 2007-04-06 11:29:52 +00:00
files.sparc64 Use default options for default partitioning schemes, rather than 2007-06-11 00:38:06 +00:00
files.sun4v Use default options for default partitioning schemes, rather than 2007-06-11 00:38:06 +00:00
kern.mk Temporarily add 'WITH_GCC3' that removes -Wno-pointer-sign from the 2007-05-24 21:53:42 +00:00
kern.post.mk If KERNEL_EXTRA is defined, make kernel-all target depend on it. 2007-03-23 21:55:59 +00:00
kern.pre.mk Disable -Werror for now. 2007-05-19 04:48:08 +00:00
kmod_syms.awk
kmod.mk Disable -Werror for now. 2007-05-19 04:48:08 +00:00
ldscript.amd64 Provide the _start_ctors and _stop_ctors symbols. As on i386, the addresses 2004-05-29 01:09:00 +00:00
ldscript.arm Create a non-elf pure binary version of the kernel as well. 2005-11-24 02:25:49 +00:00
ldscript.i386
ldscript.ia64 Have the linker provide btext. It's used for profiling. 2004-08-25 07:43:28 +00:00
ldscript.powerpc
ldscript.sparc64
Makefile.amd64 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.arm Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.i386 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.ia64 Remove definition of the GCC3 variable. It was introduced in rev. 2007-06-02 21:30:39 +00:00
Makefile.pc98 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.powerpc Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.sparc64 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.sun4v Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh Pad the strings sccs[], version[], and osrelease[] up to a minimum of 2005-08-19 01:49:15 +00:00
NOTES Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
options Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
options.amd64 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.arm Add CPU_XSCALE_81342 before I forget again. 2007-06-11 21:31:13 +00:00
options.i386 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.ia64 o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- 2006-04-24 23:31:51 +00:00
options.pc98 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.powerpc Catch up with sparc64 OFWCONS_POLL_HZ change 2004-06-25 13:44:34 +00:00
options.sparc64 - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
options.sun4v Remove remnants from the sparc64 origin of this file and which are 2007-01-19 12:22:50 +00:00
systags.sh Use a simpler way to reach the <machine> include dir, which should 2005-12-03 21:37:54 +00:00