From bd7e5f992efa91e837b384122c22470815b2be16 Mon Sep 17 00:00:00 2001 From: John Dyson Date: Fri, 19 Jan 1996 04:00:31 +0000 Subject: Eliminated many redundant vm_map_lookup operations for vm_mmap. Speed up for vfs_bio -- addition of a routine bqrelse to greatly diminish overhead for merged cache. Efficiency improvement for vfs_cluster. It used to do alot of redundant calls to cluster_rbuild. Correct the ordering for vrele of .text and release of credentials. Use the selective tlb update for 486/586/P6. Numerous fixes to the size of objects allocated for files. Additionally, fixes in the various pagers. Fixes for proper positioning of vnode_pager_setsize in msdosfs and ext2fs. Fixes in the swap pager for exhausted resources. The pageout code will not as readily thrash. Change the page queue flags (PG_ACTIVE, PG_INACTIVE, PG_FREE, PG_CACHE) into page queue indices (PQ_ACTIVE, PQ_INACTIVE, PQ_FREE, PQ_CACHE), thereby improving efficiency of several routines. Eliminate even more unnecessary vm_page_protect operations. Significantly speed up process forks. Make vm_object_page_clean more efficient, thereby eliminating the pause that happens every 30seconds. Make sequential clustered writes B_ASYNC instead of B_DELWRI even in the case of filesystems mounted async. Fix a panic with busy pages when write clustering is done for non-VMIO buffers. --- sys/vm/vm_unix.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/vm/vm_unix.c') diff --git a/sys/vm/vm_unix.c b/sys/vm/vm_unix.c index 883e36d80e7a..46531e82f4e4 100644 --- a/sys/vm/vm_unix.c +++ b/sys/vm/vm_unix.c @@ -38,7 +38,7 @@ * from: Utah $Hdr: vm_unix.c 1.1 89/11/07$ * * @(#)vm_unix.c 8.1 (Berkeley) 6/11/93 - * $Id: vm_unix.c,v 1.8 1995/11/12 06:43:28 bde Exp $ + * $Id: vm_unix.c,v 1.9 1995/12/07 12:48:29 davidg Exp $ */ /* @@ -56,6 +56,7 @@ #include #include #include +#include #ifndef _SYS_SYSPROTO_H_ struct obreak_args { @@ -85,7 +86,8 @@ obreak(p, uap, retval) if (swap_pager_full) { return (ENOMEM); } - rv = vm_map_find(&vm->vm_map, NULL, 0, &old, diff, FALSE); + rv = vm_map_find(&vm->vm_map, NULL, 0, &old, diff, FALSE, + VM_PROT_ALL, VM_PROT_ALL, 0); if (rv != KERN_SUCCESS) { return (ENOMEM); } -- cgit v1.2.3