Replace the global VM page hash table with a per-VM-object RB tree. No
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 2 Dec 2006 23:13:46 +0000 (23:13 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 2 Dec 2006 23:13:46 +0000 (23:13 +0000)
commit1f8043408e70c4b6398edd407ca11d958a7c89e3
tree9b6f42ba793ef47dd5fdebe22191597e11a9a84b
parentb2560af1ee7048604ede02bd62b6cb1e191a7b94
Replace the global VM page hash table with a per-VM-object RB tree.  No
performance degradation was observed (probably due to locality of reference
in the RB tree improving cache characteristics for searches).  This also
significantly reduces the kernel memory footprint (no global VM page hash
table) and reduces the size of the vm_page structure.  Future MP work
should benefit from this change.

Prior work in the VM tree guarenteed that VM pages only existed in the hash
table while also associated with a VM object, this commit uses that guarentee
to make the VM page lookup structures VM-object-centric.
sys/platform/pc32/i386/pmap.c
sys/vm/vm_object.c
sys/vm/vm_object.h
sys/vm/vm_page.c
sys/vm/vm_page.h
sys/vm/vm_pageout.c