summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authorjmg <jmg@FreeBSD.org>2003-08-24 06:23:36 +0000
committerjmg <jmg@FreeBSD.org>2003-08-24 06:23:36 +0000
commit45596532dbd557423c773fa858ef675180a16923 (patch)
treea9f3b37ec3cbae3d15ba74adf466d7a065fa09d3 /sys/sparc64
parentce0fe9a89c47ed92f32795a303901033f5621cf3 (diff)
downloadFreeBSD-src-45596532dbd557423c773fa858ef675180a16923.zip
FreeBSD-src-45596532dbd557423c773fa858ef675180a16923.tar.gz
reenable the caches when a PCI peek faults. Takes my kernel compile
from 3770 real down to 1250 real. Submitted by: jake
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/genassym.c2
-rw-r--r--sys/sparc64/sparc64/support.S4
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/genassym.c b/sys/sparc64/sparc64/genassym.c
index ffa3c47..9eba041 100644
--- a/sys/sparc64/sparc64/genassym.c
+++ b/sys/sparc64/sparc64/genassym.c
@@ -90,6 +90,8 @@ ASSYM(FPRS_DU, FPRS_DU);
ASSYM(FPRS_FEF, FPRS_FEF);
ASSYM(LSU_VW, LSU_VW);
+ASSYM(LSU_IC, LSU_IC);
+ASSYM(LSU_DC, LSU_DC);
ASSYM(TAR_VPN_SHIFT, TAR_VPN_SHIFT);
diff --git a/sys/sparc64/sparc64/support.S b/sys/sparc64/sparc64/support.S
index 57ca637..3ac52fd 100644
--- a/sys/sparc64/sparc64/support.S
+++ b/sys/sparc64/sparc64/support.S
@@ -575,6 +575,10 @@ fas_nofault_end:
.globl fas_fault
ENTRY(fas_fault)
+ ldxa [%g0] ASI_LSU_CTL_REG, %o0
+ or %o0, LSU_IC | LSU_DC, %o0
+ stxa %o0, [%g0] ASI_LSU_CTL_REG
+ membar #Sync
retl
mov -1, %o0
END(fas_fault)
OpenPOWER on IntegriCloud