diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-11-10 18:42:33 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-11-10 18:42:33 +0000 |
commit | bbe8f62ec65096ee1bb8589c0f3ade29b85553c4 (patch) | |
tree | 4e43b942be0409169ada8cef2d0708a064d84fd9 /sys/uvm/uvm.h | |
parent | 89424e542479723fbb4744a2c96edff04f29fb24 (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.h | 15 |
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 |