[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: trap type 800 (Re: メモリテストユーティリティ)
p750で1.5.1/1.5.2を動かしてる斉藤と言います。
> > 和田さんの使ってるのは 1.5.2 なので今回の pmap の問題は
> > 関係ないと思います。あと、単純にメモリの不良の場合は
> > 固まるばかりではなくて core を吐いたり panic したりと
> > いろいろなことが起こるので、単純に固まるだけとなると
> > kernel の側に問題があるのかもしれません。
> >
> > #無言で止まるとなかなか調べようがないですけど…
無言で止まる症状が昨日あり、次のパッチで直りました。
currentのpmap.cにはすでに同様の修正がなされてました。
参考にして下さい。
src/sys/arch/powerpc/powerpc/pmap.cへのパッチです。
--- pmap.c.orig Wed Dec 11 11:06:59 2001
+++ pmap.c Tue Dec 11 16:54:56 2001
@@ -1421,7 +1421,9 @@
curpm = pcb->pcb_pmreal;
/* Save kernel SR. */
+#if 0
__asm __volatile("mfsr %0,14" : "=r"(ksr) :);
+#endif
/*
* Set new segment registers. We use the pmap's real
@@ -1429,13 +1431,17 @@
*/
rpm = pcb->pcb_pmreal;
for (i = 0; i < 16; i++) {
+ if (i == 14)
+ continue;
seg = rpm->pm_sr[i];
__asm __volatile("mtsrin %0,%1"
:: "r"(seg), "r"(i/* << ADDR_SR_SHFT*/));
}
/* Restore kernel SR. */
+#if 0
__asm __volatile("mtsr 14,%0" :: "r"(ksr));
+#endif
/* Interrupts are OK again. */
psl |= PSL_EE;