summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/include
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>1999-12-09 21:35:30 +0000
committerArtur Grabowski <art@cvs.openbsd.org>1999-12-09 21:35:30 +0000
commitbb9b1254fff2ad3ababa3f919b045cc242f40e13 (patch)
treefbbae3d96a37ed598f44a9ec7a86eb57aa3d9501 /sys/arch/sparc/include
parentefe6b46e1fd7c7ed1a793082313d6ccff519da7b (diff)
Fix a bug we've had for ages.
On some sun4m the pagetables must be uncached. This is indicated by the CPUFLG_CACHEPAGETABLES in cpuinfo.flags. This was done in pmap_bootstrap4m. The problem is that the CPUFLG_CACHEPAGETABLES is not set until after pmap_bootstrap4m, so even the machines that could cache the pagetables had them uncached, reducing performance. Fix this by creating pmap_cache_enable that is called just after the cache has been switched on (XXX - actually, we should call it before, but CPUFLG_CACHEPAGETABLES can be set in the code that enables the cache).
Diffstat (limited to 'sys/arch/sparc/include')
-rw-r--r--sys/arch/sparc/include/pmap.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/sparc/include/pmap.h b/sys/arch/sparc/include/pmap.h
index 4ac517b47f1..12cc90be105 100644
--- a/sys/arch/sparc/include/pmap.h
+++ b/sys/arch/sparc/include/pmap.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.h,v 1.14 1999/12/09 16:11:48 art Exp $ */
+/* $OpenBSD: pmap.h,v 1.15 1999/12/09 21:35:28 art Exp $ */
/* $NetBSD: pmap.h,v 1.30 1997/08/04 20:00:47 pk Exp $ */
/*
@@ -308,6 +308,7 @@ void pmap_redzone __P((void));
void kvm_setcache __P((caddr_t, int, int));
#define kvm_uncache(addr, npages) kvm_setcache(addr, npages, 0)
#define kvm_recache(addr, npages) kvm_setcache(addr, npages, 1)
+void pmap_cache_enable __P((void));
struct user;
void switchexit __P((vm_map_t, struct user *, int));
int mmu_pagein __P((struct pmap *pm, vaddr_t, int));