locore は悪くなさそうだ。この時点では DDB はおろか printf() すら使えない。しょうがないので、適当な場所に jbsr _doboot とか doboot(); とか書いてテストしまくる。コンパイル速いのいいねえ。boot 遅いけど…。
locore→main()→consinit()→ddb_init()→X_db_sym_init()→ db_printf()→(中略)→itecnputc()→ite_putstr()→iteputchar() とたどる。情報が 1bit (ハングするか reset がかかるか)しかない。何回再起動したかわからん。
というわけで原因判明。iteputchar() の先頭がダメ。 configure 前は kbd_ite が NULL なので例の領域をさわっている。 きっと謎な unit 番号が取れているんだろう。
o CISCO のスイッチが来た(Bay はもう懲りたらしい)。ハングさえしなければ CISCO の勝ちか? でかい。ファン 2個付き。でも既に私の後ろには Ultra2 が 2台あるので誤差範囲内。
o NetBSD/x68k バイナリを、一応インストールできることだけチェック。 X68030 (MC68030, 25MHz) で Ether 経由で MO にインストールするのに約1時間。
o 68060 でまだダメですか。うーむ。 デバッグ用のフロッピーも置いてみたので、何て言って落ちているか教えてください (スタックダンプは面倒ですのでとりあえずは無くてもいいです (←あとでやっぱり欲しいと言うかもしれないですが、 再現性があるならいつでも取れるでしょうし))。
o CISCO を中心にして LAN の変更。
どれが普通なのかは謎。TeX では \parindent, \parskip を変更すれば、どれも可能。
サンプル偏ってる?
o ほう。getwd(3) は失敗したときにバッファにエラーメッセージを入れてくるのか。 getcwd(3) はそんなことはしない。
o ufs の dinode の時刻フィールドって 32bit 秒しかないのか。2038 年問題?
cd2(asc0:6:2): Check Condition on opcode 0x28 SENSE KEY: Unit Attention ASC/ASCQ: Not Ready To Ready Transition (Medium May Have Changed)
とかいって I/O error。mount していたスロットは下手すると reboot しないとアクセスできない。これではメディア交換できない…。
CD-ROM チェンジャってそういうもんなのか(デバドラでがんばる)? それとも I/O DATA が馬鹿なのか?
o gdb --write なんてのがあったのか。マニュアルにないやん。 カーネル変数の読み書きに、わざわざ nlist(3) して lseek(2) して read(2)/write(2) するプログラム書いてた(汗)。でもやっぱり adb 欲しいよう。
o ううむ、spc.c 見てもSCSI で panic よう分からん。state machine 書いた人(aka ロボ)、心当りないですかあ。
o 硬派だったかもれないですけど、へろへろも好きだったような(笑)。
o 研究会&新入生歓迎会(?)。研究室配属が遅いので新歓も遅い。会費 2800円。
o spc_scsi_cmd() で read capacity させて spc_poll() で待っているところ、 read capacity に対して check condition を喰らうので request sense をする。 で、request sense のコマンド終了を spc_poll() が捕捉し、あたかも read capacity が正常終了したかのように spc_scsi_cmd() が return してしまう。
…ような気がする。違うかも(汗)。
o 当たらずとも遠…いかも。原因判明。check じゃなくて busy だった。SCSI のステータスが busy の時は xs->error に XS_BUSY を入れないとだめ(spc_done())。mha.c も多分だめだが、持ってないのでテストできん。
にや、これで落ちなくなった。
o しゅみっとさんのレポートを解析。落ちているのは bzero() の中。……では訳分からんので、スタックダンプを解析。DDB 風に言うと、
_bzero(0x271000 0x1000) + 38 _initmsgbuf(0x271000 0x1000) + 4e _cpu_startup() + 50 _main() + 50
sys/lib/libkern/arch/m68k/bzero.S で msgbuf に書き込みに行ったところで死んでる。 でも sys/kern/subr_log.c:initmsgbuf() で bzero() 呼ぶ前の 同じページへの read アクセスは成功してるってことは、ページのマッピングはできているんだよな。
ん? frame type #4 って何だ? 68030 には無いぞ。Motorola を漁ると、太っ腹なことに M68060 User's Manual が置いてあったのでもらってきて読む。060 では bus error などの例外がえらく変わっているようだ。で frame を解析すると、
RW=01: write SIZE=00: byte ← 謎 WE=1: bus error (/TEA asserted) on write
だそうだ。ううむ。
そういえば 060turbo って、SIMM が無くても read できてしまうとか。 満開パッチを当てないとだめ? あ、でも 16MB 挿さってれば動くんだっけ。 まさか、メモリの設定が違うとか、ちゃんと挿さってないなんてことは…。
o かな漢ごときに「使われる」のはちょっとなさけないような気がする。
o 某所より、060 で起動するらしいという情報を入手。にや。 ということは、しゅみっとさんのは RAM 容量を誤認識してるのかな?
前 x6netbsd-develop に流れた 060turbo パッチって、メモリテストの単位が 16MB なのは何か意味あるんだろうか。1MB とかじゃだめ?
o NetBSD/next68k が加わっていた。ぺけろくとどっちがユーザ多い?
o 1617 地震。震度 1。しかし、素早いねえ、1〜2分後には速報が出るとは。 Lynx で見るのはちょっと厳しいけど。
o 060turbo の SIMM スロットは、メモリが無くても読めちゃうらしい (沖さんより)ので、 それ用に書き直さないといけないようです。
で、一応書き直したインストールフロッピーと ALL カーネルを置いておきます (-d2 がついたファイル名のやつです)ので、060turbo のメモリを認識するかどうか (あるいは無くても起動するかどうか)を試してみてください(パッチはまだ…)。 ただしチェックしてないので、でんでんだめかも(汗)。
o old style でも、プロトタイプを宣言すれば大丈夫です。 私は必要(= 可変引数)の無い限り old style です(可変引数のときは両方書く)。
o
ええと、vi だと行頭の {
を目印に関数単位の移動 (コマンドは [[ と ]])
をするんですけど、あの、ちょこっとだけ……いやなんでもないです(ぉぃ)。
o それって、Mac Binary? (NeXT の Mach-O も似たようなもんかな?) じょぶず君ですね。
o tech-kern 大爆発。謎の flame (←理解していない)。片端から rmm (ぉぃ)。 なだめに入る soda さん。それにつけあがる某さん(笑)。
それはそうと、NetBSD/X86 って書くなあ。まぎらわしいやん(汗)。
o HP の LSI テスタ(HP82000) が不調だがサービスを呼ぶ予算が無いらしい(苦笑)ので、これ幸いとバラして遊ぶ (時折出現する来訪者には修理と説明(笑))。
ポゴピン(プローブのこと)を全部外して、前面からバラして、基板引き出して、 このデカい基板で 16チャネルかーとか、今時フルピッチの IC やディスクリート部品がたくさんー、とか喜んで、 元通りに組み上げたら……
直った。完璧。(おい)
o bsd.kinc.mk ってのが増えていた。 stdarg.h などを install してくれないなあ。
o X68k のキー配置は、私は Human68k では KeyWitch でいじってます。NetBSD/x68k なら loadkmap というコマンドがついてます。
loadkmap 用のマップファイルが install されないやん。
o あ、DDB ってマニュアルあったのか。ソース読んでた(笑)。
o 0341 腐った SGI のファイルサーバ死亡。0916 復活。 1450 FDDI(?) 死亡。1641 なおった。 当然アナウンスなし。
o upgrade できないの件は、ろぼ氏も喰らってます。 fsck を crunch するとちゃんと動かないのかも。
o tech-kern 爆発のダイジェスト(なのか?)。
o そうらしいですか。 M68000 User's Manual をもらってきて読むと、000 の read-modify-write はかなり違うなあ。「同じアドレス」で「バイト操作」って書いてあるし。 あ、でも X68030 って /RMC 使ってないやん。訳分からん。
o 機種依存ヘッダをインストールしてくれないのは直っていた。
o port-alpha より。DEC 3000 についている AMD79C30 は audio 用のチップで、ISDN に使うためにはソフトウェアで HDLC しないとだめらしい。難儀やの。
は、high-level ってそういう意味だったのか?
o 日記鯖の日記のうち、いくつかのレスポンスが遅い(ひどいと1分以上待たされる)のはなんででしょ。 HEAD リクエストだと遅くないんですが。lock かかっているのかな?
おや、はやくなったみたい。
o "Fat Fast File System" の文字列は、NetBSD のソースツリーだと /usr/src/share/doc/papers/beyond4.3/beyond43.ms に見られます。 "FFFS" とは書いてないけど。
o ボタン押せないので JavaScript ソースを見てみた(笑)ところ、同点だと Red Hat が優先されるようですね。
o ねたをねった。ないようが…。
o ここの ALT= 最高。韭(にら)ボタンって(笑)。(ネタ提供: 某助手)
o WIDE がパケット落としまくりなので Synopsys のライセンスが取れん。 使えんなあ。
研究や実習に支障があるので文句言ったら、あっさり直る。何だったんだ…。 パケット消失率を設定できるようになっているとか。
o ロカールを 「ロケール」と書いたのは、Sun のマニュアルかなあ。桃^H 辞書索けよな…。
o NetBSD 1.3 (1.3F も)の dev/ic/z8530tty.c の zsclose() で、ttyclose(tp) の後で tp->t_state を調べているのは意図した動作なんだろうか。 ttyclose() で 0 に初期化されるのだが。
o むむ、もしかして、UVM 化するには MACHINE_NEW_NONCONTIG 化も必要? どこいじるの? tty まわりも分からん。というわけでよろしく >各位。
うーむ、デバッグの方が燃えるなあ(笑)。
って雨やん。
o NetBSD/sparc64 が追加されていた。 SPARC Ultra らしい。
o 学内ネットワークが時々(謎)ピンポンする。TCP 切れまくり。ウソの RIP 流してるのがいるのか?
o メイルサーバ(つうか popper?)落ちてるやん。
o pmap_bootstrap の RELOC() 効いてないやん。x68k 版は今のところ physical == virtual だから動いているが。!= だと badaddr() なんかも使えないな。 一応直しとくか…。
アセンブリで書くのは保守性悪いから自粛(しているのか?)。 でもコンパイラ&アセンブラの出力見て 相対ジャンプになっていることは確認しないと(汗)。
.text を書き忘れて 3秒悩む。
o ひみつの作業。
o 22時。popd (csh ではない)は上がったみたい。メイルないけど、失われたのかなあ。
動作確認… panic: vm_page_bootstrap: no memory pre-allocated した。 *_page_physload() を cpu_startup() から consinit() に移動。
起動した。こんなんでいいのか? 本当に変わっているのか?
% ps ps: proc size mismatch (1236 total, 616 chunks)
にや。…じゃなくて、困るやん。
コンソールに WARNING: defaulted mmap() share type to MAP_PRIVATE ってのが出るけど何?
あ、panic した(汗)。再現しない(大汗)。きっと ld 途中のカーネルだったに違いない(謎汗)。
o 質問。
o あ、上のパッチ、tty まわり(com.c, zs.c)は(も?)ええかげんです。どうせ MI 化するらしいし。
__BROKEN_INDIRECT_CONFIG なんてもなんとかならないかな。 bus.h 化とあわせてよろしく(笑)。
o mail 復活。60通位どばっと来た。ううむ。アナウンスないなあ。
o 2254 地震。震度3位。
o UVM の swap ベンチ。X68030 (68030 25MHz, 12MB), NetBSD/x68k 1.3F で、swap 先は MO (FUJITSU, M2512A)に 20MB ほど。unlimit datasize しておく。
MACHINE_NEW_NONCONTIG (Mach VM): % time ./vmbench .................... 1.2u 6.0s 4:51.72 2.5% 0+0k 5+0io 21pf+0w MACHINE_NEW_NONCONTIG + UVM: % time ./vmbench .................... 1.1u 8.2s 1:22.12 11.4% 0+0k 2+0io 42pf+0w
実時間で 3.5倍。どちらかというと Mach VM が遅すぎるんだろう。 ディスクがガリガリ言うし。実メモリが十分あるときは Mach VM の方が速いみたい。
時々 panic: malloc: out of space in kmem_map で落ちるのは、 NKMEMCLUSTERS を増やすといいのかな。
は、現実逃避。
o 0337 地震。震度2位。
o 遅延メイルが何通か来る。あ、センターのアナウンスが今頃来た。
またメイルサーバがトラブったらしい。
o 工繊大の柴山教授の講演。日本の大学ではヘネ・パタな手法はやめとけという話(?)。
# 私が最後まで行ける数少ないゲームの一つ。
ただし HARDEST 設定では、最終面ノーミスは無理だろうなあ。
o Neptune-X は、バイトオーダの関係で、dp8390.c はちみっと手を入れさせてもらわないとだめですね(受信パケット長の所)。 Amiga の ed でもやっていたりするので、これ位は文句言われないだろう…。
o Z8530 SCC の資料は、Zilog 漁ったらありました。
o Partition Resizer ってのがあるのか。fips と違って広げられるらしい。 使い方(笑)。
o prompt も unset されちゃったのね…。
o ん? NetBSD-current は named pipe が外せなくなったのか? zsh の <(...) 以外使わんのに…。
o "NFS lookup failed for server fsf1: RPC: Can't decode result" って何? そろそろ crash か? >腐った SGI のサーバ。
o げ。大穴。
o えーん。arch/x68k/* にも変更が入ってるー。 というわけで今日のパッチ。 ついでにカーネルテキストを read only にして(DDB のブレークポイントは db_memrw.c でよきに計らってくれるらしい)、 NKMEMCLUSTERS を倍にしてみよう(config ファイルで)。
o 穴はふさがったみたい。早い。
o とうとう自転車のタイヤがいかれてしまった。まあ、買ってから 8年も経ったからなあ(その間一度もパンクしたことなかった)。 仕方ないので歩いて買い物。
o 全然 news が来ない。
o なぜか ssh を使ってみる。ふうん、~/.ssh を共有しているマシンからは同じ公開鍵でいけるのね。 なんでホスト名書いてあるんだ…。
みあみいさんとこより: SSH FAQ、 ssh の使い方。
某マシンで sshd を動かしてみるが、22番は fire wall で落とされるのであまり意味がなかった。
o ssh は商用利用禁止なライセンスらしい。 あ、でも他のフリーソフトに混ぜて CD-ROM に入れて売るのは例外って書いてある。 ややこしすぎ。FD や MO はだめなのか?
なんか use と distribute を混同していたりするし、 use は制限しないって書いてあったり、use に制限が書いてあったりして謎。
o 穴の取れた user land をコンパイルするも、 ファイルサーバが青息吐息なので全然進まん。
o 更新された所だけ消して上書き(?)コンパイル。 遅い。ぺけろくでやっているような気分だ。
o ホスト名がついているところは単なるコメントで、 ssh-keygen -c で変更できるようだ。
o つかまえるのはともかく、robot control が必要かも(笑)。
o 食堂で晩飯。定食が切れて、追加が入る前だったので丼にした。 ところが、ご飯を切らしているらしい。マスター曰く、 ちょうど追加の入った定食のおかず+素うどん or そばでいいなら、 食券はそれでいいです、ということで、100円安く定食を頂く。 禍福は嘲笑う縄のごとし(違う)。(←安い幸せだ)
o 心配かけて申し訳ない(謎)。
o なんか昨日、不審者がいたらしい。戸締りは忘れずに。
o 青息吐息なファイルサーバは、 いつの間にやら普通の遅さに戻っていた。
o おーい、聞いてるかー、ですか。
o 2159 今度は /share や alpha の /usr/local のファイルサーバが死亡。