diff options
author | Thomas Bushnell <thomas@gnu.org> | 1999-06-27 23:51:47 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1999-06-27 23:51:47 +0000 |
commit | 3ad230669bd394f4e77a3c2fada222ba60daf861 (patch) | |
tree | 58255fd1747812e4814220ab17241b9ee5ac741f /linux | |
parent | 428857b46fcc238b6cadf53043e7976447ca175e (diff) |
1999-06-27 Thomas Bushnell, BSG <tb@mit.edu>
* vm/vm_resident.c (vm_page_external_count): Define variable.
(vm_page_grab): New argument `external'. All callers changed.
Keep track of number of externally managed pages. Don't let
non-privileged threads exceed the externally-managed page limit.
(vm_page_grab_contiguous_pages): New argument `external'. All
callers changed. Keep track of number of externally managed
pages. Don't let non-privileged threads exceed the
externally-managed page limit.
(vm_page_convert): New argument `external'. All callers changed.
(vm_page_release): New argument `external'. All callers
changed. Keep track of number of externally managed pages.
(vm_page_bootstrap): Initialize M->external.
* vm/vm_page.h (vm_page_external_limit, vm_page_external_count):
New variables.
(struct vm_page): New members `external' and `extcounted'.
* vm/vm_pageout.c (vm_pageout): Initialize vm_page_external_limit
and vm_page_external_target.
(VM_PAGE_EXTERNAL_LIMIT, VM_PAGE_EXTERNAL_TARGET): New macro.
(vm_pageout_external_target): New variable.
(vm_pageout_scan): Regard "too many externally managed pages" as a
reason to keep doing work, but if that's the only reason we're
doing work, then the only thing we do is schedule cleaning of
pages. Help keep track of the number of externally managed pages
that we care about.
Diffstat (limited to 'linux')
-rw-r--r-- | linux/dev/glue/block.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c index 7900e72..c450ea4 100644 --- a/linux/dev/glue/block.c +++ b/linux/dev/glue/block.c @@ -308,7 +308,7 @@ alloc_buffer (int size) if (! linux_auto_config) { - while ((m = vm_page_grab ()) == 0) + while ((m = vm_page_grab (FALSE)) == 0) VM_PAGE_WAIT (0); d = current_thread ()->pcb->data; assert (d); @@ -1492,7 +1492,7 @@ device_read (void *d, ipc_port_t reply_port, /* Allocate and map pages. */ while (alloc_offset < trunc_page (offset) + len) { - while ((m = vm_page_grab ()) == 0) + while ((m = vm_page_grab (FALSE)) == 0) VM_PAGE_WAIT (0); assert (! m->active && ! m->inactive); m->busy = TRUE; |