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