summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm.h
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2001-11-10 18:42:33 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2001-11-10 18:42:33 +0000
commitbbe8f62ec65096ee1bb8589c0f3ade29b85553c4 (patch)
tree4e43b942be0409169ada8cef2d0708a064d84fd9 /sys/uvm/uvm.h
parent89424e542479723fbb4744a2c96edff04f29fb24 (diff)
Merge in some parts of the ubc work that has been done in NetBSD that are not
UBC, but prerequsites for it. - Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
Diffstat (limited to 'sys/uvm/uvm.h')
-rw-r--r--sys/uvm/uvm.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/uvm/uvm.h b/sys/uvm/uvm.h
index 1a61e80df34..f3ff4214dd5 100644
--- a/sys/uvm/uvm.h
+++ b/sys/uvm/uvm.h
@@ -1,5 +1,5 @@
-/* $OpenBSD: uvm.h,v 1.13 2001/11/05 22:14:54 art Exp $ */
-/* $NetBSD: uvm.h,v 1.23 2000/06/26 14:21:16 mrg Exp $ */
+/* $OpenBSD: uvm.h,v 1.14 2001/11/10 18:42:31 art Exp $ */
+/* $NetBSD: uvm.h,v 1.24 2000/11/27 08:40:02 chs Exp $ */
/*
*
@@ -74,6 +74,7 @@
struct uvm {
/* vm_page related parameters */
+
/* vm_page queues */
struct pgfreelist page_free[VM_NFREELIST]; /* unallocated pages */
struct pglist page_active; /* allocated pages, in use */
@@ -84,10 +85,17 @@ struct uvm {
boolean_t page_init_done; /* TRUE if uvm_page_init() finished */
boolean_t page_idle_zero; /* TRUE if we should try to zero
pages in the idle loop */
+
/* page daemon trigger */
int pagedaemon; /* daemon sleeps on this */
struct proc *pagedaemon_proc; /* daemon's pid */
simple_lock_data_t pagedaemon_lock;
+
+ /* aiodone daemon trigger */
+ int aiodoned; /* daemon sleeps on this */
+ struct proc *aiodoned_proc; /* daemon's pid */
+ simple_lock_data_t aiodoned_lock;
+
/* page hash */
struct pglist *page_hash; /* page hash table (vp/off->page) */
int page_nhash; /* number of buckets */
@@ -103,7 +111,7 @@ struct uvm {
simple_lock_data_t kentry_lock;
/* aio_done is locked by uvm.pagedaemon_lock and splbio! */
- struct uvm_aiohead aio_done; /* done async i/o reqs */
+ TAILQ_HEAD(, buf) aio_done; /* done async i/o reqs */
/* pager VM area bounds */
vaddr_t pager_sva; /* start of pager VA area */
@@ -143,6 +151,7 @@ extern struct uvm uvm;
UVMHIST_DECL(maphist);
UVMHIST_DECL(pdhist);
+UVMHIST_DECL(ubchist);
/*
* UVM_UNLOCK_AND_WAIT: atomic unlock+wait... wrapper around the