summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim/machdep.c
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2012-04-06 16:03:38 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2012-04-06 16:03:38 +0000
commit9c79ae8eeae5c79b22d21b6b31cdb8cef3f8478a (patch)
tree629b68f1c4f865a3a6cd89b972fbd12debf0d87f /sys/powerpc/aim/machdep.c
parente05a39a26d0c7161237856b3741baefc2f3dcf9b (diff)
downloadFreeBSD-src-9c79ae8eeae5c79b22d21b6b31cdb8cef3f8478a.zip
FreeBSD-src-9c79ae8eeae5c79b22d21b6b31cdb8cef3f8478a.tar.gz
Reduce the frequency that the PowerPC/AIM pmaps invalidate instruction
caches, by invalidating kernel icaches only when needed and not flushing user caches for shared pages. Suggested by: kib MFC after: 2 weeks
Diffstat (limited to 'sys/powerpc/aim/machdep.c')
-rw-r--r--sys/powerpc/aim/machdep.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/powerpc/aim/machdep.c b/sys/powerpc/aim/machdep.c
index b31f15c..2690337 100644
--- a/sys/powerpc/aim/machdep.c
+++ b/sys/powerpc/aim/machdep.c
@@ -405,6 +405,9 @@ powerpc_init(vm_offset_t startkernel, vm_offset_t endkernel,
cacheline_size = 32;
}
+ /* Make sure the kernel icache is valid before we go too much further */
+ __syncicache((caddr_t)startkernel, endkernel - startkernel);
+
#ifndef __powerpc64__
/*
* Figure out whether we need to use the 64 bit PMAP. This works by
OpenPOWER on IntegriCloud