OpenBSD/sgi install battle
- nullnilaki
- 13873
- 2
- 2
- 6
このぶぶんは、将来OdysseyでXが動くようになった時に、 絶対問題になるから、今の内にしっかりなおしておかないと....
2013-12-30 12:36:23@nullnilaki This is an interrupt problem. I think I have fixed it this morning in pci/iofreg.h 1.5.
2013-12-30 14:28:41@MiodVallat (`・ω・´) b http://t.co/4FMVW8JoRP
2013-12-31 00:51:58おまけの知識
@tsutsuii softint(9)を使うと、割り込み処理の重さが低い?ということですか?
2013-12-31 04:13:06@tsutsuii キーボードで例えると、入力されたキーコードだけ拾ってキューに入れて、あとで画面に表示する的なものと理解しました。
2013-12-31 04:22:07もともと softint(9) の意図は、他の割り込みがブロックされる割り込みルーチン内では本当に緊急度の高い処理(≒受信データをバッファに放り込むまで)だけ実施して、受信データを tty層に投げる処理は後回しにする(softint(9) で「後でやる処理」を登録する)ということ
2013-12-31 04:19:57で、割り込みルーチン内で直接 tty層に投げるところまでやってしまった場合、大昔の実装では他の割り込みが待たされるだけで済んでいたけれど、いまどきのSMP実装では tty層のロックが必要なので、tty層を高割り込み優先度の状態から呼んではいけないという制約がある(たぶん)。
2013-12-31 04:24:38かなり前からLUNAの高負荷時にキーボード叩くと固まる現象があって、キーボードの方は受信処理が単純なので受信バッファ作って softint で処理するように直した(で、ハングもしなくなった)んだけど、シリアルの方は受信エラーもバッファしないといけなくてかなりめんどくさかったという
2013-12-31 04:27:32そもそもシリアルのドライバって com(4) と z8530tty(4) くらいしかなくて、厳密にバッファ制御やエラー処理入れるとハードフローや速度のような設定変更も絡んでかなりややこしくなるので、どこまで手抜きして softint だけを実装するかというのが課題だったのでした
2013-12-31 04:29:24@tsutsuii なるほど、だから、シリアルコンソールでviとか使うと、 固まってお手上げだったんだ! とっても困ってました!
2013-12-31 04:29:17@nullnilaki まあ、だからスクリーンコンソールばっかりで作業していたという。もっとも、厳密に検証したわけじゃなくて たぶんそういうことだろ で書いて固まらなくなった(ような気がする)という手抜き(ヽ´ω`)
2013-12-31 04:33:30@nonakapさんに教えてもらった spltty と splx と Tezroのキーボード対応で学んだ知識が早速役に立った?
2013-12-31 04:33:52