
オープンソースカンファレンス2021 Online/Spring NetBSDのご紹介 の記録

まとめを更新しました。#osc21os「オープンソースカンファレンス2021 Online/Osaka NetBSDのご紹介 の記録」 togetter.com/li/1658323
2021-01-30 08:56:34
それはかくかくしかじかで出来ないという作文しながらドライバ片っ端から調べてたら、いや出来るなこれ、となって作文をやり直してたけど、別件でまた片っ端から調べてたらやっぱ出来ねえな、ってなってて話が進まない。orz
2021-02-01 22:05:54
unlinkあたりのロックがアレな件で、hw_if->{close,halt_*}をexlockなしで呼べたらこう書けるんじゃね?っていうお便りが先々週くらいに来ててずっと調べてるけど、まだ返事に辿り着けぬい。というか問題が多い。
2021-02-01 22:09:08
こう書けるんじゃね、についてはcloseが2つ同時に来た時にロックなしでatomicだけでは防げないような気がするんだけど、という気はしてるのだけど。
2021-02-01 22:10:49
hw_ifの呼び出し制約のほうはよー分からん。自分でsc_lockを外しちゃう人は(closeとhalt_*については)もういなくなってて、あとざっと関係ありそうなのが btsco, auich, auvia, eso, gcscaudio, uaudioの6人。
2021-02-01 22:27:16
btscoはcloseとhalt_*でfree()してる(ので本当はsc_lockで呼んではいけない)、 auich, auvia はcloseでintr_lock外してるけど調べた感じ外す必要なさげなので修正できそう。 esoはhalt_*でcv_timedwaitのためにintr_lock外してる。ディレイの入れ方それでいいのかという気はするけど。
2021-02-01 22:29:53
gcscaudioはhalt_*でfree()してて(なのでsc_lockで呼んではいけない)、これはめっちゃ頑張れば直せそうだけど。 uaudioはhalt_*がusb系のルーチン呼ぶためにintr_lock外してる。
2021-02-01 22:32:14
てことで、元々こっちがenterしたsc_lockを向こうで勝手に外しやがるからexlock用意したんだけど、ここに限ると問題はintr_lock外したい人ばっかりだったということでなんか思ってたんと向きが違う…。
2021-02-01 22:34:25
halt_* がみんなintr_lockされてるから困ってるというならintr_lockなし、sc_lockあり(exlockなし)という仕様も出来なくはないと思うけど、その場合逆に残りの人のhalt_*がintr_lockかかってる前提で動いてるはずなので、それ全部mutex_enter入れて回るという話だけど、それは絶対嘘だよなあ。
2021-02-01 22:39:29
それはそうとして、動いてるから触らなくてもいいんだけど:-)、free()することがまあある程度考えられるcloseがsc_lockで呼びだす規約になっていて、kmem_freeはロック持ったまま呼ぶなという規約なのは、まあ確かにその仕様はどうなのかという気はしてはいる…。
2021-02-01 22:49:20
それについてはaudio_unlinkがexlockで動けるならhw_if.closeもsc_lockなしで呼び出せるので、そっちへ寄せるほうがやっぱいいよなあ。
2021-02-01 22:51:47
そうするとaudio_closeがexlock待ちのcv_wait(無期限ブロック)をせざるを得ないか、多少リソースリークしても大勢に影響ないので(ぉぃ)cv_timedwaitしておけば(closeが返ってこないことに比べれば)ユーザへのインパクトは低い…。
2021-02-01 22:54:43
そしてSCSI HDDへddで書き込める環境がO/luna88kしかなかった:-) 外付けSCSI箱もないので、88K2をばらしてHDDをつながないといけないか。
2021-02-01 22:55:57
複数のディスクリプタが1つのハードウェアを直結して共有して、さらにどの瞬間にもデタッチが同時に起きる、このaudioの仕様考えたやつほんまお前が解決せーや…。orz
2021-02-01 22:57:58
@tsutsuii ありがとうございます。純正230MB HDD(ハーフハイト)はあるのでSCSI外付け箱があると助かります。
2021-02-01 23:12:46
初代LUNA(左)のネットワークボードはLUNA-88K(右)のものと同じ:-) pic.twitter.com/4jOEqidDYK
2021-02-02 19:09:55

Hello, #NetBSD/luna68k bootloader! pic.twitter.com/w6ZTLYwAy8
2021-02-02 19:29:12



正常動作時のisibootd(8)のログ(frameのダンプ付き) gist.github.com/ao-kenji/c1594…
2021-02-02 19:43:53
wip/texlive-collection-langjspanese on NetBSD/aarch64 on pinebook.dviまでできた。あとはPDF変換。とんぬらさんありがとうございます。 pic.twitter.com/torAoexCT1
2021-02-03 09:18:58