summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.h
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2002-10-18 17:24:30 +0000
committerdillon <dillon@FreeBSD.org>2002-10-18 17:24:30 +0000
commit277583f7f89409a073e22d5d745e14d0e60eb03c (patch)
treed01dd6df2fccbaa5a40ddb0d0da127c651c7c486 /sys/vm/vm_object.h
parentbf5cd60a894d7810c40b4fdb4cbdae8e7be2c7eb (diff)
downloadFreeBSD-src-277583f7f89409a073e22d5d745e14d0e60eb03c.zip
FreeBSD-src-277583f7f89409a073e22d5d745e14d0e60eb03c.tar.gz
Replace the vm_page hash table with a per-vmobject splay tree. There should
be no major change in performance from this change at this time but this will allow other work to progress: Giant lock removal around VM system in favor of per-object mutexes, ranged fsyncs, more optimal COMMIT rpc's for NFS, partial filesystem syncs by the syncer, more optimal object flushing, etc. Note that the buffer cache is already using a similar splay tree mechanism. Note that a good chunk of the old hash table code is still in the tree. Alan or I will remove it prior to the release if the new code does not introduce unsolvable bugs, else we can revert more easily. Submitted by: alc (this is Alan's code) Approved by: re
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r--sys/vm/vm_object.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h
index b87acce..f73a729 100644
--- a/sys/vm/vm_object.h
+++ b/sys/vm/vm_object.h
@@ -92,6 +92,7 @@ struct vm_object {
TAILQ_HEAD(, vm_object) shadow_head; /* objects that this is a shadow for */
TAILQ_ENTRY(vm_object) shadow_list; /* chain of shadow objects */
TAILQ_HEAD(, vm_page) memq; /* list of resident pages */
+ vm_page_t root; /* root of the resident page splay tree */
int generation; /* generation ID */
vm_pindex_t size; /* Object size */
int ref_count; /* How many refs?? */
OpenPOWER on IntegriCloud