diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 1999-12-09 21:35:30 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 1999-12-09 21:35:30 +0000 |
commit | bb9b1254fff2ad3ababa3f919b045cc242f40e13 (patch) | |
tree | fbbae3d96a37ed598f44a9ec7a86eb57aa3d9501 /sys/arch/sparc/include | |
parent | efe6b46e1fd7c7ed1a793082313d6ccff519da7b (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.h | 3 |
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)); |