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

Re: PenCentra hungup



> >そこで, cpu_fork でとりあえず SR の MIPS_SR_INT_IE を落としてみたとこ
> >ろ, 普段は 10 分かからず TLB miss のおこる mpc303 が, 4 時間近くたった
> >今でも動いています.
> 
> ちょっとまえに cpu_fork で sr をいじるようになりましたが、あれ
> でしょうか。news5000 ではこの変更を戻さないと(IE を落せば十分かも)
> libc をコンパイルできないぐらいに不安定になりました。どう落ちてた
> かは今ちょっと確認できません。

それです.  あの変更によって, cpu_switch の最後で SR を restore したと
ころから mips3_proc_trapmoline の先頭で SR に MIPS_SR_EXL を書くまでの
間で, 割り込みが enable された window ができてしまっているのでしょう.

# そこで実際に割り込みが起きたとして, どうあの tlb miss になるのかは考
# えてないですが.

> # どこかに splなんとか が抜けてる?

kernel mode のときの SR じゃなくて, process (元々の目的は kernel
thread ですが) に戻ったときの SR で割り込み許可しないといけないんじゃ
ないでしょうか.  つまり, pcb->pcb_context[11] じゃなくて ((struct
frame *)p2->p_md.md_regs)->f_regs[SR].

enami.