From b20700966027364e7e2e3cf5ca4613cbb4e2a25b Mon Sep 17 00:00:00 2001 From: Owain Ainsworth Date: Tue, 16 Jun 2009 00:11:30 +0000 Subject: Backout all changes to uvm after pmemrange (which will be backed out separately). a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return. a quick hitlist of the main commits this backs out: mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback. art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway. ok beck@, ariane@. prompted by deraadt@. --- sys/uvm/uvm_object.h | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'sys/uvm/uvm_object.h') diff --git a/sys/uvm/uvm_object.h b/sys/uvm/uvm_object.h index d6292ec0acb..3d5a091f462 100644 --- a/sys/uvm/uvm_object.h +++ b/sys/uvm/uvm_object.h @@ -1,4 +1,4 @@ -/* $OpenBSD: uvm_object.h,v 1.12 2009/06/06 03:45:08 oga Exp $ */ +/* $OpenBSD: uvm_object.h,v 1.13 2009/06/16 00:11:29 oga Exp $ */ /* $NetBSD: uvm_object.h,v 1.11 2001/03/09 01:02:12 chs Exp $ */ /* @@ -47,11 +47,11 @@ */ struct uvm_object { - simple_lock_data_t vmobjlock; /* lock on memq */ - struct uvm_pagerops *pgops; /* pager ops */ - RB_HEAD(uobj_pgs, vm_page) memt; /* pages in obj */ - int uo_npages; /* # of pages in memq */ - int uo_refs; /* reference count */ + simple_lock_data_t vmobjlock; /* lock on memq */ + struct uvm_pagerops *pgops; /* pager ops */ + struct pglist memq; /* pages in this object */ + int uo_npages; /* # of pages in memq */ + int uo_refs; /* reference count */ }; /* @@ -93,11 +93,6 @@ extern struct uvm_pagerops uvm_deviceops; ((uobj)->pgops == &uvm_vnodeops && \ ((struct vnode *)uobj)->v_flag & VTEXT) -int uvm_pagecmp(struct vm_page *, struct vm_page *); -RB_PROTOTYPE(uobj_pgs, vm_page, fq.queues.tree, uvm_pagecmp); - -int uvm_objwire(struct uvm_object *, off_t, off_t, struct pglist *); -void uvm_objunwire(struct uvm_object *, off_t, off_t); #endif /* _KERNEL */ -- cgit v1.2.3