summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_glue.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-03-02 02:54:24 +0000
committerdyson <dyson@FreeBSD.org>1996-03-02 02:54:24 +0000
commited1fa57da89e71813d6e2e89acbca81d440049c1 (patch)
tree088df355e4c3ec1798e2e3f969ce6621e24b0125 /sys/vm/vm_glue.c
parent5f6f44df5a35eca0291a7eee3f09997484de41ea (diff)
downloadFreeBSD-src-ed1fa57da89e71813d6e2e89acbca81d440049c1.zip
FreeBSD-src-ed1fa57da89e71813d6e2e89acbca81d440049c1.tar.gz
1) Eliminate unnecessary bzero of UPAGES.
2) Eliminate unnecessary copying of pages during/after forks. 3) Add user map simplification.
Diffstat (limited to 'sys/vm/vm_glue.c')
-rw-r--r--sys/vm/vm_glue.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index 3dfa281..bad6645 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -59,7 +59,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_glue.c,v 1.39 1996/02/22 10:57:36 davidg Exp $
+ * $Id: vm_glue.c,v 1.40 1996/02/23 18:49:24 peter Exp $
*/
#include "opt_ddb.h"
@@ -271,7 +271,8 @@ vm_fork(p1, p2)
for(i=0;i<UPAGES;i++) {
vm_page_t m;
- while ((m = vm_page_alloc(p2->p_vmspace->vm_upages_obj, i, VM_ALLOC_ZERO)) == NULL) {
+ while ((m = vm_page_alloc(p2->p_vmspace->vm_upages_obj,
+ i, VM_ALLOC_NORMAL)) == NULL) {
VM_WAIT;
}
@@ -281,13 +282,12 @@ vm_fork(p1, p2)
VM_PAGE_TO_PHYS(m), VM_PROT_READ|VM_PROT_WRITE, 1);
pmap_kenter(((vm_offset_t) up) + i * PAGE_SIZE,
VM_PAGE_TO_PHYS(m));
- if ((m->flags & PG_ZERO) == 0)
- bzero(((caddr_t) up) + i * PAGE_SIZE, PAGE_SIZE);
m->flags &= ~PG_ZERO;
m->valid = VM_PAGE_BITS_ALL;
}
vm_page_unhold(stkm);
+
p2->p_addr = up;
/*
OpenPOWER on IntegriCloud