From b86ec922be51324fdc6e7d847d6784cf1b526baa Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 18 Oct 2002 17:24:30 +0000 Subject: 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 --- sys/vm/vm_object.h | 1 + 1 file changed, 1 insertion(+) (limited to 'sys/vm/vm_object.h') diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index b87acce0942f..f73a7297afbf 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?? */ -- cgit v1.3