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

new MIPS cache ops and R4000/4400 with L2 cache



筒井です。

L2 cache ありの R4000/R4400 マシンで thorpej-mips-cache merge 後の
kernel はそれなりに動いてるでしょうか?

arc の Express5800/230:

>cpu0 at mainbus0: MIPS R4400 CPU (0x460) Rev. 6.0 with MIPS R4010 FPC Rev. 0.0
>cpu0: 16KB/32B direct-mapped L1 Instruction cache, 48 TLB entries
>cpu0: 16KB/32B direct-mapped write-back L1 Data cache
>cpu0: 1024KB/64B direct-mapped write-back L2 Unified cache

の対応で L1 cache の 32B/l のコードを足していろいろ様子を
見てたんですが、どうも動きが変なので……

・userland の binary がたまに disk 待ちで止まったままになる
  (^C すると復帰する。裏で disk access があると動き出したりする)
・mount_mfs -s 65536 swap /tmp するとしばらく止まった後 core を吐く
・jazzio の osiop 上の file でも PCI SCSI 上の file でも同じ
・kernel は落ちない
・device 読み書きのデータが化けることはない

という具合で cache まわりっぽいんですが、いまいち自分のコードも
自信がないので


……と、ここまで書いたところでもう一度確認したところ、

・NetBSD/arc 上の native なコンパイラ (egcs-2.91.66 19990314
  (egcs-1.1.2 release)) で作った kernel はおかしい
・NetBSD/i386 上の pkgsrc/cross/mipsel-netbsd なコンパイラ
  (egcs-2.91.60 19981201 (egcs-1.1.1 release)) で作った
  kernel は問題なく動く

ということに気づきました。現状ほかの mips port だとどうなんでしょう?
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp