日記 (1998年水無月)

日記の表紙前月(皐月)翌月(文月)
1998年6月1日(月)
o む? NetBSD/x68k いじりに Amiga 版を参考にしたので、 カーネルテキストの先頭にダミーのベクタみたいなのを置いていたのだが、 やっぱりいらないやと思って取ってしまうと起動しない。 先頭 18byte を 0 で埋めてやれば起動するが、16byte 以下では画面左上にカーソルが出たでハング。謎すぎ。

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 NetBSD/x68k 1.3.2 のバイナリ

o CISCO のスイッチが来た(Bay はもう懲りたらしい)。ハングさえしなければ CISCO の勝ちか? でかい。ファン 2個付き。でも既に私の後ろには Ultra2 が 2台あるので誤差範囲内。

1998年6月2日(火)
雨。梅雨入りだそうだ。

o NetBSD/x68k バイナリを、一応インストールできることだけチェック。 X68030 (MC68030, 25MHz) で Ether 経由で MO にインストールするのに約1時間。

o 68060 でまだダメですか。うーむ。 デバッグ用のフロッピーも置いてみたので、何て言って落ちているか教えてください (スタックダンプは面倒ですのでとりあえずは無くてもいいです (←あとでやっぱり欲しいと言うかもしれないですが、 再現性があるならいつでも取れるでしょうし))。

o CISCO を中心にして LAN の変更。

1998年6月3日(水)
o 段落の話。手許の英文の本を見ると、こんな具合:
段落字下げあり; 段落間すき間なし
The C (中略) 2nd Ed., Switching and Finite (後略)
段落字下げなし; 段落間すき間あり
Open Boot PROM (後略), FLEX 8000 Handbook, PowerPC (中略) Environments, DEC (中略) System Programmer's Manual
段落字下げあり; 段落間すき間あり
ISO/IEC 9899:1990, Digital Systems Design and (後略)

どれが普通なのかは謎。TeX では \parindent, \parskip を変更すれば、どれも可能。

サンプル偏ってる?

o ほう。getwd(3) は失敗したときにバッファにエラーメッセージを入れてくるのか。 getcwd(3) はそんなことはしない。

o ufs の dinode の時刻フィールドって 32bit 秒しかないのか。2038 年問題?

1998年6月4日(木)
o む、以前買った変な CD-ROM チェンジャは、あるスロットを mount していて別のスロットを eject すると(ちなみに NetBSD/alpha)、
	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 欲しいよう。

1998年6月5日(金)
風邪ひいたか?

o ううむ、spc.c 見てもSCSI で panic よう分からん。state machine 書いた人(aka ロボ)、心当りないですかあ。

o 硬派だったかもれないですけど、へろへろも好きだったような(笑)。

o 研究会&新入生歓迎会(?)。研究室配属が遅いので新歓も遅い。会費 2800円。

1998年6月6日(土)
o swap 使い切っても malloc できるのは、demand paging な実行ファイルの text segment は swap に追い出さずにそのまま破棄できるからでは (ソース読んでないので推測)。

o spc_scsi_cmd() で read capacity させて spc_poll() で待っているところ、 read capacity に対して check condition を喰らうので request sense をする。 で、request sense のコマンド終了を spc_poll() が捕捉し、あたかも read capacity が正常終了したかのように spc_scsi_cmd() が return してしまう。

…ようながする。違うかも(汗)。

1998年6月7日(日)
o NetBSD が 1.3F になった。

o 当たらずとも遠…いかも。原因判明。check じゃなくて busy だった。SCSI のステータスが busy の時は xs->error に XS_BUSY を入れないとだめ(spc_done())。mha.c も多分だめだが、持ってないのでテストできん。

にや、これで落ちなくなった。

1998年6月8日(月)
がーん。

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 挿さってれば動くんだっけ。 まさか、メモリの設定が違うとか、ちゃんと挿さってないなんてことは…。

1998年6月9日(火)
雨。

o かな漢ごときに「使われる」のはちょっとなさけないような気がする。

o 60606 番ゲット。

o 某所より、060 で起動するらしいという情報を入手。にや。 ということは、しゅみっとさんのは RAM 容量を誤認識してるのかな?

x6netbsd-develop に流れた 060turbo パッチって、メモリテストの単位が 16MB なのは何か意味あるんだろうか。1MB とかじゃだめ?

1998年6月10日(水)
o テスタ用基板の配線。面倒くさい…。

o NetBSD/next68k が加わっていた。ぺけろくとどっちがユーザ多い?

o 1617 地震。震度 1。しかし、素早いねえ、1〜2分後には速報が出るとは。 Lynx で見るのはちょっと厳しいけど。

1998年6月11日(木)
英語でことば遊びされても分からーん。

o 060turbo の SIMM スロットは、メモリが無くても読めちゃうらしい (沖さんより)ので、 それ用に書き直さないといけないようです。

で、一応書き直したインストールフロッピーと ALL カーネルを置いておきます (-d2 がついたファイル名のやつです)ので、060turbo のメモリを認識するかどうか (あるいは無くても起動するかどうか)を試してみてください(パッチはまだ…)。 ただしチェックしてないので、でんでんだめかも(汗)。

o old style でも、プロトタイプを宣言すれば大丈夫です。 私は必要(= 可変引数)の無い限り old style です(可変引数のときは両方書く)。

o 1740 情報科学センターからアンケートに来た。

1998年6月12日(金)
o ガビーン。なんだこの何も書いてないバスエントリは(汗)。

o ええと、vi だと行頭{ を目印に関数単位の移動 (コマンドは [[]]) をするんですけど、あの、ちょこっとだけ……いやなんでもないです(ぉぃ)。

o それって、Mac Binary? (NeXT の Mach-O も似たようなもんかな?) じょぶず君ですね。

o tech-kern 大爆発。謎の flame (←理解していない)。片端から rmm (ぉぃ)。 なだめに入る soda さん。それにつけあがる某さん(笑)。

それはそうと、NetBSD/X86 って書くなあ。まぎらわしいやん(汗)。

o echo "maxslp/W7f" | adb -w /vmunix /dev/kmem ですか。なるほど。

1998年6月13日(土)
o 「入学希望者のための見学会」らしい。雨だし、そんなに来まい。 腐ったファイルサーバとかも見られるんだろうか。

o HP の LSI テスタ(HP82000) が不調だがサービスを呼ぶ予算が無いらしい(苦笑)ので、これ幸いとバラして遊ぶ (時折出現する来訪者には修理と説明(笑))。

ポゴピン(プローブのこと)を全部外して、前面からバラして、基板引き出して、 このデカい基板で 16チャネルかーとか、今時フルピッチの IC やディスクリート部品がたくさんー、とか喜んで、 元通りに組み上げたら……

直った。完璧。(おい)

1998年6月14日(日)
o そういえば、NetBSD/x68k が upgrade スクリプトで upgrade できないのって、どうなったんでしたっけ。

o bsd.kinc.mk ってのが増えていた。 stdarg.h などを install してくれないなあ。

1998年6月15日(月)
o 060turbo パッチは何となく動いているらしい。にや。

o X68k のキー配置は、私は Human68k では KeyWitch でいじってます。NetBSD/x68k なら loadkmap というコマンドがついてます。

loadkmap 用のマップファイルが install されないやん。

1998年6月16日(火)
o M680x0 の MMU のテーブルサーチは、ひたすら長い read modify write らしい。 x6netbsd-users で、拡張スロットのメモリが NetBSD/x68k で使えんという話題が出ていたが、これが原因なら cas2 とかも動かなかったりして。

o あ、DDB ってマニュアルあったのか。ソース読んでた(笑)。

o 0341 腐った SGI のファイルサーバ死亡。0916 復活。 1450 FDDI(?) 死亡。1641 なおった。 当然アナウンスなし。

o upgrade できないの件は、ろぼ氏も喰らってます。 fsck を crunch するとちゃんと動かないのかも。

o (泣)。ネタないの(にっきのネタはあるのか?)。

o tech-kern 爆発ダイジェスト(なのか?)。

1998年6月17日(水)
o locale って、英語風に読むなら「ロカール」ですよね。 morale が「モラール」なんだし。 米語なら [ae] だから、「ロキャ(ー)ル」かな。

o そうらしいですか M68000 User's Manual をもらってきて読むと、000 の read-modify-write はかなり違うなあ。「同じアドレス」で「バイト操作」って書いてあるし。 あ、でも X68030 って /RMC 使ってないやん。訳分からん。

o 機種依存ヘッダをインストールしてくれないのは直っていた。

o port-alpha より。DEC 3000 についている AMD79C30 は audio 用のチップで、ISDN に使うためにはソフトウェアで HDLC しないとだめらしい。難儀やの。

は、high-level ってそういう意味だったのか?

1998年6月18日(木)
o 最近えらく WIDE が重いなあ。

o 日記鯖の日記のうち、いくつかのレスポンスが遅い(ひどいと1分以上待たされる)のはなんででしょ。 HEAD リクエストだと遅くないんですが。lock かかっているのかな?

おや、はやくなったみたい。

o "Fat Fast File System" の文字列は、NetBSD のソースツリーだと /usr/src/share/doc/papers/beyond4.3/beyond43.ms に見られます。 "FFFS" とは書いてないけど。

o ボタン押せないので JavaScript ソースを見てみた(笑)ところ、同点だと Red Hat が優先されるようですね。

1998年6月19日(金)
雨。

o ねたをねった。ないようが…。

o ここの ALT= 最高。韭(にら)ボタンって(笑)。(ネタ提供: 某助手)

o WIDE がパケット落としまくりなので Synopsys のライセンスが取れん。 使えんなあ。

研究や実習に支障があるので文句言ったら、あっさり直る。何だったんだ…。 パケット消失率を設定できるようになっているとか。

o ロカールを 「ロケール」と書いたのは、Sun のマニュアルかなあ。桃^H 辞書索けよな…。

1998年6月20日(土)
o ダメデスクトップ対決(ぉぃ)見物しようと思ったが、腹具合が今一なので見送り。

o おかえりなさいまし

o NetBSD 1.3 (1.3F も)の dev/ic/z8530tty.c の zsclose() で、ttyclose(tp) ので tp->t_state を調べているのは意図した動作なんだろうか。 ttyclose() で 0 に初期化されるのだが。

o むむ、もしかして、UVM 化するには MACHINE_NEW_NONCONTIG 化も必要? どこいじるの? tty まわりも分からん。というわけでよろしく >各位。

うーむ、デバッグの方が燃えるなあ(笑)。

1998年6月21日(日)
o 夏至。そういやメルヘンメイズって光源真上だな。

って雨やん。

o NetBSD/sparc64 が追加されていた。 SPARC Ultra らしい。

o 学内ネットワークが時々(謎)ピンポンする。TCP 切れまくり。ウソの RIP 流してるのがいるのか?

o メイルサーバ(つうか popper?)落ちてるやん。

1998年6月22日(月)
o メイルサーバ直らんなあ。お急ぎの用件は Web 日記で(笑)。

o にや。私と同じようにはまってますね(笑)。

o pmap_bootstrap の RELOC() 効いてないやん。x68k 版は今のところ physical == virtual だから動いているが。!= だと badaddr() なんかも使えないな。 一応直しとくか…。

アセンブリで書くのは保守性悪いから自粛(しているのか?)。 でもコンパイラ&アセンブラの出力見て 相対ジャンプになっていることは確認しないと(汗)。

.text を書き忘れて 3秒悩む。

o ひみつの作業。

o 22時。popd (csh ではない)は上がったみたい。メイルないけど、失われたのかなあ。

1998年6月23日(火)
o にや。コンパイル通った。

動作確認… 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 質問。

  1. vmparam.h の VM_PHYSSEG_STRAT はどれを選べばいいの?
  2. pmap.c を hp300 のと比べると、pmap_changebit() へ渡す引数が違ったりするけど、これはこれで正しい? pte.h の構造体やマクロが違うのと関係あるのかな?

o あ、上のパッチ、tty まわり(com.c, zs.c)は(も?)ええかげんです。どうせ MI 化するらしいし。

__BROKEN_INDIRECT_CONFIG なんてもなんとかならないかな。 bus.h 化とあわせてよろしく(笑)。

o mail 復活。60通位どばっと来た。ううむ。アナウンスないなあ。

o 2254 地震。震度3位。

1998年6月24日(水)
o 落ちる〜。なぜか kernel text のマシン命令 (_ffs_truncate + 0x424 の movel #60,sp@) が書き変わって(先頭ワードが 1 増える) Illegal instructioin になるという謎なものだったので、text を read only にしてみたりしたが、今度は再現しない…。 ま、再発したら考えよう…。

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 工繊大の柴山教授の講演。日本の大学ではヘネ・パタな手法はやめとけという話(?)。

1998年6月25日(木)
o メルヘンメイズのラスボスは、本体には近寄らずに、思い切り引いて、 フロアの手前端から、某 が飛んでくるタイミングで大きなしゃぼん玉で遠距離攻撃していると、 某はおおかた落ちてしまうので比較的簡単に倒せます。

# 私が最後まで行ける数少ないゲームの一つ。

ただし HARDEST 設定では、最終面ノーミスは無理だろうなあ。

o Neptune-X は、バイトオーダの関係で、dp8390.c はちみっと手を入れさせてもらわないとだめですね(受信パケット長の所)。 Amiga の ed でもやっていたりするので、これ位は文句言われないだろう…。

o Z8530 SCC の資料はZilog 漁ったらありました

1998年6月26日(金)

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 げ。大穴。

1998年6月27日(土)
晴れ。暑い。風が非常に強い。

o えーん。arch/x68k/* にも変更が入ってるー。 というわけで今日のパッチ。 ついでにカーネルテキストを read only にして(DDB のブレークポイントは db_memrw.c でよきに計らってくれるらしい)、 NKMEMCLUSTERS を倍にしてみよう(config ファイルで)。

o はふさがったみたい。早い。

o とうとう自転車のタイヤがいかれてしまった。まあ、買ってから 8年も経ったからなあ(その間一度もパンクしたことなかった)。 仕方ないので歩いて買い物。

o 全然 news が来ない。

1998年6月28日(日)
今朝は暑くて目が覚めたが、昼間だと暑かろうが眠れる(謎)。

o なぜか ssh を使ってみる。ふうん、~/.ssh を共有しているマシンからは同じ公開鍵でいけるのね。 なんでホスト名書いてあるんだ…。

みあみいさんとこより: SSH FAQssh の使い方

某マシンで sshd を動かしてみるが、22番は fire wall で落とされるのであまり意味がなかった。

o ssh は商用利用禁止なライセンスらしい。 あ、でも他のフリーソフトに混ぜて CD-ROM に入れて売るのは例外って書いてある。 ややこしすぎ。FD や MO はだめなのか?

なんか use と distribute を混同していたりするし、 use は制限しないって書いてあったり、use に制限が書いてあったりして謎。

o 穴の取れた user land をコンパイルするも、 ファイルサーバが青息吐息なので全然進まん。

1998年6月29日(月)
夏まっさかり。雨は?

o 更新された所だけ消して上書き(?)コンパイル。 遅い。ぺけろくでやっているような気分だ。

o ホスト名がついているところは単なるコメントで、 ssh-keygen -c で変更できるようだ。

o つかまえるのはともかく、robot control が必要かも(笑)。

o 食堂で晩飯。定食が切れて、追加が入る前だったので丼にした。 ところが、ご飯を切らしているらしい。マスター曰く、 ちょうど追加の入った定食のおかず+素うどん or そばでいいなら、 食券はそれでいいです、ということで、100円安く定食を頂く。 禍福は嘲笑う縄のごとし(違う)。(←安い幸せだ)

1998年6月30日(火)
よく晴れてるなあ。

o 心配かけて申し訳ない(謎)。

o なんか昨日、不審者がいたらしい。戸締りは忘れずに。

o 青息吐息なファイルサーバは、 いつの間にやら普通のさに戻っていた。

o おーい、聞いてるかー、ですか。

o 2159 今度は /share や alpha の /usr/local のファイルサーバが死亡。

日記の表紙前月(皐月)翌月(文月)
ITOH Yasufumi