summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-07-30 03:08:57 +0000
committerdyson <dyson@FreeBSD.org>1996-07-30 03:08:57 +0000
commit01ce9d323a15a1365c3b7802f404edd77da1e38b (patch)
treeac8503dbf428f1dae7c0a8bba152c865f89a493a /sys/vm/vm_fault.c
parentff1df96f3bbd049cd4de0c3d6652ac34449f19b9 (diff)
downloadFreeBSD-src-01ce9d323a15a1365c3b7802f404edd77da1e38b.zip
FreeBSD-src-01ce9d323a15a1365c3b7802f404edd77da1e38b.tar.gz
Backed out the recent changes/enhancements to the VM code. The
problem with the 'shell scripts' was found, but there was a 'strange' problem found with a 486 laptop that we could not find. This commit backs the code back to 25-jul, and will be re-entered after the snapshot in smaller (more easily tested) chunks.
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 66965d4..43b4158 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -66,7 +66,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_fault.c,v 1.54 1996/07/27 03:23:52 dyson Exp $
+ * $Id: vm_fault.c,v 1.55 1996/07/28 01:14:01 dyson Exp $
*/
/*
@@ -103,6 +103,10 @@ int vm_fault_additional_pages __P((vm_page_t, int, int, vm_page_t *, int *));
#define VM_FAULT_READ_BEHIND 3
#define VM_FAULT_READ (VM_FAULT_READ_AHEAD+VM_FAULT_READ_BEHIND+1)
+int vm_fault_free_1;
+int vm_fault_copy_save_1;
+int vm_fault_copy_save_2;
+
/*
* vm_fault:
*
@@ -278,7 +282,7 @@ RetryFault:;
}
queue = m->queue;
- vm_page_unqueue(m,0);
+ vm_page_unqueue_nowakeup(m);
/*
* Mark page busy for other processes, and the pagedaemon.
@@ -561,6 +565,7 @@ readrest:
first_m = m;
m->dirty = VM_PAGE_BITS_ALL;
m = NULL;
+ ++vm_fault_copy_save_1;
} else {
/*
* Oh, well, lets copy it.
@@ -634,6 +639,7 @@ readrest:
PAGE_WAKEUP(m);
vm_page_free(m);
m = NULL;
+ ++vm_fault_free_1;
tm->dirty = VM_PAGE_BITS_ALL;
first_m->dirty = VM_PAGE_BITS_ALL;
}
@@ -645,6 +651,7 @@ readrest:
vm_page_rename(m, other_object, other_pindex);
m->dirty = VM_PAGE_BITS_ALL;
m->valid = VM_PAGE_BITS_ALL;
+ ++vm_fault_copy_save_2;
}
}
}
@@ -653,9 +660,9 @@ readrest:
if (m) {
if (m->queue != PQ_ACTIVE)
vm_page_activate(m);
- /*
- * We no longer need the old page or object.
- */
+ /*
+ * We no longer need the old page or object.
+ */
PAGE_WAKEUP(m);
}
@@ -1084,7 +1091,7 @@ vm_fault_additional_pages(m, rbehind, rahead, marray, reqpage)
endpindex = pindex + (rahead + 1);
if (endpindex > object->size)
endpindex = object->size;
- while (tpindex < endpindex) {
+ while (tpindex < endpindex) {
if ( vm_page_lookup(object, tpindex)) {
break;
}
OpenPOWER on IntegriCloud