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

[pbsd-mg2] Re: presario 213



どうも曽田です。今起きました。^^;
まだ、こっちでは試してません。
(kernel を make して、さあ試そうとしたら電池切れで電源が入らなかったの
 で寝てしまいました。^^; E-55 は電池切れだと AC 電源があっても動かない
 のでした…)

> とりあえずディレクトリが壊れているといわなくなりました。
> (上記のパッチを入れなくてもprintf の入れ方によってはディレクトリが
> 壊れているといわない場合もあるので、はっきりとは断言できませんが)
	:
> #エラーは出ないのですが、かといって動くわけでもありません。
> #だんまりです。
> #clock からの割り込みを処理してないから init がスケジュール
> #されてないのかな....

なるほど。直ったかもしれないけどなんとも言えない状態… ということですね。

> MIPS 一般の問題で、とりあえずhpcmips としては上記パッチをあてて
> しのいでおけばよいということでしょうか?

キャッシュが効かないので、すごく遅くなりますが、もし他で進められる部分
があれば進めてください。

疑っているのは、1 次キャッシュが仮想アドレスインデックスであるため、複
数の仮想アドレスから同一の物理メモリが参照された場合に、キャッシュに 
alias ができて、キャッシュ内容の不整合が起きているのではないかという問
題です。

これが問題になるのは、MIPS 一般というよりも、R4000 以降で二次キャッシュ
がないマシン (MIPS3_L2CACHE_ABSENT) だけです。二次キャッシュがあれば、
VCE - Virtual Coherency Exception の処理で一次キャッシュを flush する
ことによって解決できているので。従って、関係するのは、Castor Fu のとこ
ろのマシンと、NetBSD/arc と、hpcmips だけです。

実は、hpcmips が元にした NetBSD-current に、今考えている問題が残ってい
るかどうか、はっきりとした自信はないんです。ですから、ひょっとすると見
当はずれかもしれません。1 月半ばに Castor が、この関係、変更したみたい
なので。(ちょっと見ただけですが、やっぱりまだ駄目かもしれません。でも、
カーネルの他の部分の構造にも依存するので、なんとも…。 あと、この変更、
すごく効率悪いかも…)

# NetBSD/arc は、まだ 1998 年 9 月だったり…

> それとも、いよいよ難しい本を読んで勉強しないと駄目ですか?
> (篠原さんの紹介しているような(^^;)

この話については、ソフトバンクから出ている「UNIX カーネル内部解析」に、
解説が載っていたような記憶があります。東京に行った時に、篠原さんの紹介
されていた本も眺めてみたいなあ…
もし、これが原因だとすると、pmap.c の手直しかもしれません。こっちでも、
ちょっと考えてみます。
--
soda