/var/log/hdk.log

2007 年 5 月中旬


10 (木)

%1 んー

signal() (sigaction) のトランポリンがよくわからん。 前にも似たようなことやったんだけどなぁ。忘れた。 結局 dietlibc 付属の signal() を使ったけど。

最近たまに右手の指がピクピクします。 ストレスが原因? なんだろ... 電車か!

下りの電車、快速に立って乗るより 12 分後の区間快速に座って乗ったほうが 立っている時間は短くなる。 のだが当然時間は 20 分くらい余計にかかるわけだ。 んー。 でも下りは途中で必ず座れる。 上りは座り損ねたら 糸冬 だからな。

TX の電車で、長い座席に座ったまま寝ると、確実に横の人に寄りかかります。 自分もやったことあるし、他の人が寄りかかってくることもよくあります。 自動運転が荒いからです。 眠ってる状態で耐えれる加速度をはるかに超えてます。 って書いてるけど他の電車の事情は良く知りません。

2007/05/10 のコメントを読む・書く


11 (金)

%1 強風

めちゃ風強くて、常磐線はしばらく止まってたらしい。TX も 一部速度規制だとか。

「信号が赤のため停車します」 「お待たせいたしました。電車が動きます。ご注意ください」 みたいな放送が流れるのだが、 車掌さんの声じゃなくて、 ちゃんと録音されたいつものアナウンスの声。 そんなのまで録音してんのか。 ま、そのせいか、「ご注意ください」まで言い終わってないのに 動き始めたりするわけだが。

%2 最適化の罠

GCC 4 になって、デフォルトで性能重視のパラメータにかわっているようだ。 引数をレジスタ渡しするとかが有効になってる。

で、-O の最適化も GCC 3.x よりもだいぶ細かいとこまで入るみたい。 おかげでこんなのではまった。

hdk@kojima:/tmp$ cat a.c
#include <stdio.h>
struct abc { int i, j; };
void tst(struct abc *p) { printf("tst:%d,%d\n",p->i,p->j); }
static void p (struct abc *p) {
        asm volatile ("pusha;push %0;call tst;pop %0;popa"::"a"(p));
}
main() {
        struct abc a = { 1, 2 };
        p(&a);
}

hdk@kojima:/tmp$ gcc42 -O0 a.c
hdk@kojima:/tmp$ ./a.out 
tst:1,2
hdk@kojima:/tmp$ gcc42 -O1 a.c
hdk@kojima:/tmp$ ./a.out 
tst:672445321,1

構造体のポインタを渡して、その構造体をインラインアセンブラの中で 参照する場合を想定。上の例ではインラインアセンブリで tst 関数を呼んでいる。 インラインアセンブラのところ。 ポインタをレジスタに入れて渡しているのだが、 この書き方だとポインタの中身は参照されないものとみなされてしまうようだ。 だから最適化をかけると、ローカル変数への代入は意味ないからいらないでしょ って話になってしまう。正しい解決方法がよくわからない。"m" を使うと参照すると思ってくれるんだが、 それだと lea で引っ張ってこなきゃならんからあまりよろしくない。

とにかく最適化が原因の場合、 なかなか気づかないのでソースコードとにらめっこして 大変な人間リソースを消費。 何度も printf デバッグをやってれば、 どこかのタイミングで突然動くようになることがあるので、 そのへんの不審な挙動を見てで初めて最適化を疑う。 オフにできる場合はオフにしてテスト。 対象を絞りこんでいく。 オフにできない場合 (Linux カーネルなど) は、 どうするんでしょうね。 大変そうだ。

%3 WX310SA

こないだの文字化けメールからいくつかの事実が発覚。

発覚経緯。

とまあどいつもこいつもむちゃくちゃな実装だな。

2007/05/11 のコメントを読む・書く


12 (土)

%1 jless

落ちるバグを発見しちまったと思ったんだが FreeBSD ports のは大丈夫っぽい、 ということは Debian の問題か。

%2 明日は

お台場に行ってこようと思います。 去年と違って天気がよさそうだから人が多そうなのがやな感じだけど、 公式サイト見ると去年より若干安くつきそうだし、 っていうかそもそも定期があるから以下略

%3 F1 予選は

あの順番とタイミングで車を出したのはきっと、 母国グランプリのアロンソが最後にタイムを更新してうぉぉぉ、 というドラマになるのを目指していたのだろう。 そして実際、それまでのタイムから言って結果は見えてるな、 と思いながら見てたんで、吹いたw

2007/05/12 のコメントを読む・書く


13 (日)

%1 マルチプレックス

今年もあいかわらず熱い。 しかも案の定人が多かったので、 歓声も大きかった。 日焼け止め忘れた。 朝起き損ねたので昼のドリフトは見逃した。

ドラッグレースで本物のニトロを使った危険なマシンが出てるとかなんとか、 なんだそりゃー! 裏を歩いてるとコースに入っていくバイクなんかに遭遇して、 間近で写真撮ったりできるし、バイク好きな人は本当にうれしいんじゃないかな。 カスタムカーもあった。

けちってスタンド席の券を買わなかったので、見づらかったけど、 夜の最後の一時間は見たかったので、その 30 分以上前から場所取りして 一番前で見た。スタンド席よりも近い。これは良い。 ライダーたちの手にタッチするのもたっぷりできました。

目の前でバイクが後輪を空転させて煙もくもく、 というのは去年も見たなあと思っていたのだが、 その人ずーっとやってて、後輪ちらちら見ながらやってて、 すると、後輪タイヤから火花が出初めて、ん、んん? と 思って見てたら「パンッ」と音がしてタイヤがバーストしました。 すげーw

ドリフト今年は織戸氏と風間氏。 目の前 10m 以内くらいを駆け抜けていってくれました。うひょー。 織戸氏はアリストだったということはほんの数日前に シェイクダウンしたやつか。それでもあんなにすごい パフォーマンスができるの? ほんとすごいなぁ。さすがだ。

%2 でんしゃ

山手線は、ブレーキはあんまり心地よくなかったんだけど 加速はおとなしい。

ゆりかもめは、発進時の加速度がちょっと大きい。TX より大きいかも。 横揺れが少なく、ブレーキも最後のところは TX より少しまし。

そう、TX の乗り心地の悪さは飛ばすせいもあるんだろうね。

%3 PASMO

初めてパスモにチャージして JR で使ってみた。簡単だけど、難しい。 「Suica 専用」ってなんだよ! パスモが使えてもいいじゃないか!!

PASMO を使って JR の切符を買うことってできるのかな? 券売機に突っ込めばいいの?

JR の券売機で PASMO のチャージってできるのかな? 券売機に突っ込めばいいの?

2007/05/13 のコメントを読む・書く


14 (月)

%1 GCC4

引数レジスタ渡しがデフォルトかと思ったけど勘違いでした。 その点については今までどおりでした。

asm 文のほうは謎なんですが 3 つ目のコロンのうしろに "memory" を 指定することでも、コンパイラがメモリへの書きだしを行ってくれるようです。 メモリを破壊するわけではないので、なんか違和感がありますが、 そういうもんなのでしょうかね。

%2 PASMO

すこし調べてみたら Suica 専用改札も通れるらしい。 この前エラーになったのはなに? もしかして読み取りエラーか? 某所の IC カードと ぴったり重ね合わせているだけなのに? 弱っ!

ちなみに TX の改札では、ゆっくりタッチして読み取りエラーに遭遇したことは 今のところない。

%3 貫徹バス

いつもいつも楽しい完徹バスですが、 今日夜乗ったのは運転席のメーターが光ってなかったよw いいのか? (^^;

%4 FreeBSD ports

なんか最近おとなしいなと思ってたのだが某電子掲示板を見たら謎がとけた。 こんな話らしい: HEADS UP: xorg upgrade plans

pidgin が微妙にベータ版なんだよー早くしてくれ。 ま、そういうのは自分でいじっちゃえばいいんですけどね。

%5 PukiWiki

link に書いてある RSS は 0.91。 下のほうに表示されるリンクは RSS 1.0。URL をいじれば 2.0。

で、適当なフィーダにぶち込んでみたが 1.0 も 2.0 も役に立たない。 タイトルが変わらないせいか、 更新の判定がまるでうまくいっていないようだ。0.91 は 案外役に立つ。description に日付が書かれているせいで、 フィーダが更新されたと思っちゃうようだ。

2007/05/14 のコメントを読む・書く


15 (火)

%1 フレッツ

パソコンの電源入れたのが 22:45 過ぎくらいだったので全然知らなかったけど、 トラブってたらしい。IP アドレス変わってたからうちもトラブってたんだろう。

そしてまたしても「ひかり電話」も影響を受けていたらしい。 やっぱり信頼性はぼろぼろだな!

%2 謎バグ

ここ数日、謎なバグを解消しようとがんばってるのだが わからん... ページテーブルへの書き込みをする命令のエミュレーションで、 ページ不在のエントリを、存在 + ユーザ + 読み取り専用の属性に変更する 場合だけトラブルを起こすことは、わかった。 そのときだけエミュレーション無し時代の処理にすればうまくいく。 なんだこりゃ。fork() 直後か exec() 直後かくらいに落ちる 現象と矛盾はしていないが。

%3 ウインドウステーションとデスクトップ

の関係はなんとなくわかるけど なんでわかれてんのかよくわかりません! CreateWindowStation の説明にクリップボードって書いてあったから それかと思ったら CreateDesktop しても クリップボードも別になってるっぽいし。GeoSwitch っていうのは CreateDesktop を 駆使するプログラムなんですかね? さわってないからしらんけど。

これミスるとマジで再起動コースになります。 ユーザの切り替え有効にしてっから Ctrl+Alt+Del 押しても タスクマネージャが出ない (最初のデスクトップのほうに出てる)。Windows キー + L でログオン画面に戻しても、他のアカウントがなかったら、 外からログオフさせることができない。 そこから再起動は選べる...

ログオン画面はウインドウステーションが違いますね。 でもユーザ切り替えしちゃうとやっぱり WinSta0 だとか。 なにがなんだか。

簡単にいうと、ノート単体だと仮想デスクトップ環境が 欲しくなるけどやはり fvwm は便利だということです。

2007/05/15 のコメントを読む・書く


16 (水)

%1 bus

今日は、どう考えても排気ブレーキな音がしてた。 ちゃんと路線バスにもついてるのか。 使ってない運転手さんが多いだけ?

ノンステ車とかのあたらしいのについてる坂道発進補助装置だが、N に入れなくても クラッチ切って停止後 2 秒程度で作動するようだ。へぇ。

%2 train

多少横揺れになれつつあるような気がしないでもない今日この頃。 やっぱ横揺れひどいよ、TX は。 つり革がずーっと揺れてるもんな。 それに加えてカックンブレーキ。

2007/05/16 のコメントを読む・書く


17 (木)

%1 Windows XP

ディスクの最後のところに位置する 2 番目の 基本パーティションに FreeDOS が入った状態で、 その手前に 3 番目の基本パーティションを作ってそこに Windows XP を インストールしたら、パーティションの 2 番目と 3 番目の順番が入れ替わって、 最初のコピー後の再起動時から全く起動しなかった。GRUB からロードとか 順番を戻したりとかやったが NTLDR is missing しか出ない。自滅かよw

昔 DOS を使ってたころはよく割り込みのフックとかやったもんだが、 いまだったらどうなるか。 ためしに 0000:0200 のところ (割り込みベクタテーブルの空いてるところ) に 短いコードを書き込んでみたら、ちゃんとそのコードが残ったまま Windows XP が 起動したw ちなみに探したら D000:0000-D000:3FFF までが RAM になってたんだが 何のだろう?

Adobe Reader で間違って超広い範囲をビットマップでコピーしてしまったところ ガリガリとスワップが始まって、何分間も止められなかった。 ありえない... すごく久しぶりにこんな体験した気がするよ。 なんでかしらないけど Linux でここまでひどい目に遭った記憶がない。 コンソールからサクッと kill できるせいなのか、 それとも、悪名高き OOM killer に助けられているのか、 あるいは、X ごと落ちてあきらめもついたか...

%2 Linux on X31

たまーに suspend-to-ram 後の復帰に失敗する。 お月さんのランプがちかちかするから、 スクリプトが動き出しているに違いないのだが、 そのどこかで固まってしまうみたい。 どれかがわかんねぇ。

2007/05/17 のコメントを読む・書く


18 (金)

%1

小一時間ほど出遅れた。

%2

何気なく入ったカレー屋で適当に辛口 (3 辛) を頼んだら、1/3 くらいまでは ぱくぱく食えてたのだがそこからが辛いのなんのって... なんとか 食べきったが、辛さがけっこう残ってた。うへー。

古本屋で黒沢を手に入れた。 はじめのころの話なんてあんまり覚えてなかったが、 読んでいくと結構思い出す。 あとで研究室に放置してくるかw

2007/05/18 のコメントを読む・書く


19 (土)

%1 バグ

今週ずーっと謎だったバグがやっとなおせた YA━━━━HA━━━━(゜∀゜)

原因は、ほんとはページのあるところへの、 アクセス時に起きるページフォールトの処理で、 ページディレクトリにエントリを書き込むとき、 変更済みで破棄予定のページテーブルを指すエントリを 書き込んでしまっていたことであった。(←意味不明)

最初にあやしい挙動を見せたのは命令エミュレーションで、 存在ビットがオフのページテーブルエントリにたいして 読み込み専用のユーザ権限のエントリを書き込むという時の エミュレーションをしないようにすると、 問題が発生しないように見えていたのだが、 これは単に数が多いから問題が表面化するだけで、 絶対これが原因ではないという風に考えられたので、 ずっと調べていたらやっぱり違ったわけで、 エミュレーション時に必ず TLB フラッシュのエミュレーションを するようにしたところ挙動が変わってきて、 今度はページディレクトリのエミュレーションで不審な挙動が発生。(さらに 意味不明) そこから連想して、といっても最後は思い付きですなぁ。

%2 北千住

なんか月一でタダのプールがあるらしいので行ってみた。 小学校のプールがこんなにきれいなのかよ! 無料ということもあって 人が多い。25m プールにこの人数は多いよな。 いやそもそも東京だからこんな人数になるんだな。 これだから都会は...

っていうか北千住で TX→地下鉄以外の行動とったの初めてだわ。(地下鉄→TX すら 経験ないw) 田舎もんにとってはすげぇ都会だった。

%3 FreeBSD GNOME

さいきんめっちゃ調子悪いです。 何かとウインドウ閉じるたびに落ちる。 調べていったら LC_CTYPE=C なら大丈夫。 何かが腐ってる様子。SCIM かなぁ?

2007/05/19 のコメントを読む・書く


Powered by Tomsoft Diary System 1.7.4

/var/log/hdk.log コメント一覧

トップ / 日記索引 / 日記 (2007 年 5 月中旬)

Hideki EIRAKU