[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NetBSD-2.0 on Sigmarion II



なかはしです。

On 2005/01/20, at 3:09, oikawa@weez.mu wrote:

> まず思ったのはかなり体感速度がおそいとおもうのですが、
> どうなんでしょう?私がなにかチョンボした可能性があるかも。。

いや,すごく遅いです。気が狂いそうなくらい。

で,その後もう少し調べてみたところ,KSEG0のキャッシュだけ無効にして
おけば問題ないことがわかりました。これでもまだ遅いですが,
HPCMIPS_L1CACHE_DISABLEよりは随分マシです。

具体的には,HPCMIPS_L1CACHE_DISABLEは無効(コメント)にしておいて,
sys/arch/mips/mips/locore.S でKSEG0をunchachedに設定している部分
だけを有効にします(添付のパッチを参考にしてください)。

この状態でperlとmglをビルドしてみたところ,ハングアップは起こり
ませんでした。丸1日くらいは動いていたことになると思います。

-------パッチここから---------
--- sys/arch/mips/mips/locore.S.orig	2005-01-18 22:40:16.000000000 +0900
+++ sys/arch/mips/mips/locore.S	2005-01-18 22:41:56.000000000 +0900
@@ -106,14 +106,14 @@
  	li	t0, 0				# Disable interrupts and
  	mtc0	t0, MIPS_COP_0_STATUS		# the fp coprocessor
  	COP0_SYNC
-#ifdef HPCMIPS_L1CACHE_DISABLE
+/*#ifdef HPCMIPS_L1CACHE_DISABLE*/	/* workaround for Sigmarion II */
  	mfc0	t0, MIPS_COP_0_CONFIG
  	li	t1, 0xfffffff8
  	and	t0, t0, t1
  	or	t0, 0x00000002			# XXX, KSEG0 is uncached
  	mtc0	t0, MIPS_COP_0_CONFIG
  	COP0_SYNC
-#endif /* HPCMIPS_L1CACHE_DISABLE */
+/*#endif*/ /* HPCMIPS_L1CACHE_DISABLE */
  #else
  	mfc0	t0, MIPS_COP_0_STATUS
  	or	t0, MIPS_SR_COP_1_BIT		# Disable interrupts, and
-------パッチここまで--------

---
中橋 一朗 (なかはし いちろう)
http://ichiro.nnip.org/
PGP key fingerprint: 9190 1525 9218 EB38 F34E  8E4E 2213 6D45 D076 3A98