summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_page.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_page.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_page.h')
-rw-r--r--sys/vm/vm_page.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
index 646158e..156f929 100644
--- a/sys/vm/vm_page.h
+++ b/sys/vm/vm_page.h
@@ -110,8 +110,9 @@ TAILQ_HEAD(pglist, vm_page);
struct vm_page {
TAILQ_ENTRY(vm_page) pageq; /* queue info for FIFO queue or free list (P) */
- struct vm_page *hnext; /* hash table link (O,P) */
TAILQ_ENTRY(vm_page) listq; /* pages in same object (O) */
+ struct vm_page *left; /* splay tree link (O) */
+ struct vm_page *right; /* splay tree link (O) */
vm_object_t object; /* which object am I in (O,P)*/
vm_pindex_t pindex; /* offset into object (O,P) */
OpenPOWER on IntegriCloud