summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1994-08-06 09:00:50 +0000
committerdg <dg@FreeBSD.org>1994-08-06 09:00:50 +0000
commitf35b3c52c8c76e6ce5ef4d69f5dce9bcc02415ba (patch)
tree082072ee046cc7b59f3485c898b166bc8fc8c52d
parent9719140bdfe07aea5f217adac3c4f94791677243 (diff)
downloadFreeBSD-src-f35b3c52c8c76e6ce5ef4d69f5dce9bcc02415ba.zip
FreeBSD-src-f35b3c52c8c76e6ce5ef4d69f5dce9bcc02415ba.tar.gz
Enabled page table preloading of cached objects.
Submitted by: John Dyson
-rw-r--r--sys/vm/vm_mmap.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 2c1624b..89f73e5 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -38,7 +38,7 @@
* from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$
*
* @(#)vm_mmap.c 8.4 (Berkeley) 1/12/94
- * $Id: vm_mmap.c,v 1.3 1994/08/02 07:55:28 davidg Exp $
+ * $Id: vm_mmap.c,v 1.4 1994/08/04 03:06:44 davidg Exp $
*/
/*
@@ -68,6 +68,8 @@ int mmapdebug = 0;
#define MDB_MAPIT 0x04
#endif
+void pmap_object_init_pt();
+
struct sbrk_args {
int incr;
};
@@ -712,6 +714,9 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff)
pager_cache(object, FALSE);
else
vm_object_deallocate(object);
+
+ if( map->pmap)
+ pmap_object_init_pt(map->pmap, *addr, object, foff, size);
}
/*
* Copy-on-write of file. Two flavors.
@@ -784,6 +789,8 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff)
* protect everything ourselves.
*/
vm_object_pmap_copy(object, foff, foff + size);
+ if( map->pmap)
+ pmap_object_init_pt(map->pmap, *addr, object, foff, size);
vm_object_deallocate(object);
vm_map_deallocate(tmap);
if (rv != KERN_SUCCESS)
OpenPOWER on IntegriCloud