[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;