.というわけで昨日の続き。とりあえず sched_wakeup に printf を入れてみたところ、 lwp が LSONPROC な状態になってるにもかかわらず、 なぜか sleep queue に残ってる、ということを発見。 .とりあえず、sleep queue から run queue に移すときに 何らかのミスをしてることを疑って、DIAGNOSTIC を付けてみた。 こうすると、たとえば sleep queue に入りっぱなしの lwp を setrunqueue() へと渡すと panic するはず。 ……でも落ちるのは sched_wakeup 。 ということは、ちょっと違う話か。 よーするに上で書いた LSONPROC を検出して落ちてる。 .trace したらですね、ltsleep() の直下で割り込みが発生して、 その割り込みハンドラで wakeup しとるわけですよ。 きっとどっかでロックを忘れてるな、これ。 .……GPE ハンドラを IPL_HIGH で establish しとるやん。 SCHED_LOCK は splsched() だから守り切れてないべや。 昔は splsched は splhigh と等価だったのねん。 .ACPICA が新しくなった奴を試してみた。 ACPICA は新しくなるとどこかデグレードしてたりする 傾向があるので油断ならんのだが、今回は割とよさそうだ。 というか、一つ前に import されてたのがいまひとつだったっぽい。 |
.世間で嘘屋のアレが流行ってるのを尻目に、 私はこのところロボ(仮称)をやってるわけだが、 最近のにしては珍しくフラグ立てがシビアだ。 というか基本的にあそこのゲームはどれも比較的そんな傾向があった気はするが。 .という感じで、何度もやり直してやっとダレ女エンド。 わかってしまえばちゃんと話に一本の筋が通るようなフラグ立てに なってるのだが、それがわかるまで何度やり直したことか。 .どうしても攻略できない人へのヒント\ 。 |
.end to end が哲学的か 。 哲学的かどうかという話じゃないでそ。 IPv6 にすべきというのは理想を追い求めるというたぐいの話ではなくて、 複雑になりすぎたインターネットを一度シェイプアップしようという話ですな。 その証拠として、v4 より v6 の方がほとんどのケースで話が簡単になっておろう。 ただ、確かにモバイルな場面では v6 でも不十分で、 どこかでダイナミックなアドレス割りつけ (というか、とどのつまりルーティング)が必要なのは確かなんだけどね。 だからといって v4 で十分かというとそうではあるまい。 .結局のところ、v4 か v6 かという話のキモは、 長期的な観点において v4 をこのまま使いつづけるよりも v6 に移行したほうが 明らかにコストが低くて済むんだけど、 移行に伴って一時的にかかるコストも大きいので、 そのエネルギーバリアを超えるためにコストを使うべきかどうか、 あるいは実際にそのコストを払ったとしてバリアを超えられるかどうか、 という話だと思う。 .DHCP あるいは、プライベートアドレス + NAPT でも 世の中が十分動くのは確かなんだが、 ただ、そういういびつな方法を使ってシステムを動かすというのは、 なんというか、 例えれば社員がサービス残業してなんとか会社を回しているような、 そういうたぐいの見えないコストがかかってるというのは認識してもらいたい。 そういうのが視野に入らないのは、 現場をわかってないコンサルタントがえてして陥りがちな罠だわな。 |
.どうも StatusChange の意味を勘違いしてしまう。 よくよく考えてみればこれで同じミスを二回やってる。 というわけで修正して commit 。 .perry からメールが来た。誰だチクったのは :D .私の手元にある local patch のたぐいはもはや汚いのしか残ってないんですけど。 どっちかといえば形になってない微妙に抽象的なアイディアが 頭の中にモワモワっと存在してる程度。必要なものを走り書きすれば:
|