2008年08月の日記。

2008年08月02日

どきどき魔女神判! Duo 初回限定版

定価9,240のところ7,461円ということなので。

これでも高いというのなら通常版を。

LinuxのRCU実装

RCUの仕組みが気になったので調べて見ました。

@ITの記事では参照ベースで解放するかどうかを選択できるような仕組みに見えます。しかしながら、これをx86でやろうとするとページテーブルが大変なことになります。でもLinuxのmm/ディレクトリの下やarch/x86/mmの下ではそんなことをしているようには思えません。

なにかからくりがあるはず、ということでkernel/rcupdate.cを読みました。

基本的には、

  1. rcu_read_lock()でロックして
  2. rcu_read_unlock()でロックを解除します。
  3. call_rcu()を使って解放処理を呼び出すと、安全なタイミングで解放処理が呼び出されます。

ところが、RHEL 5.2での実装ではrcu_read_lock()は単にpreempt_disable()を呼び出すだけです。なぜこれでうまくいくのでしょうか。

この謎を解くため、call_rcu()の動作を調べてみます。

call_rcu()は、与えられた関数ポインタをstruct rcu_head構造体にセットしてrcu_dataのリストに追加するだけです。ということは、どこかでrcu_dataのリストをたどっているはずです。

rcu_do_batch()がリストをたどって関数を呼び出しています。次はこのrcu_do_batch()がどの関数から呼び出されているのか、ということを調べていきます。

  1. rcu_online_cpu()で、taskletとしてrcu_process_callbacks()を登録。
  2. rcu_process_callbacks()
  3. __rcu_process_callbacks()
  4. rcu_do_batch()

タスクレットとして登録されて動作していることが判りました。

しかし、call_rcu()でつないでいるリストはrcu_data::nxtlistですが、rcu_do_batch()でたどっているのはrcu_data::donelistです。どこかでdone_listに移動させていなければおかしいです。

このリスト移動処理も__rcu_process_callbacks()でやっています。

rcu_dataの持つリストはnxtlistとcurlist、donelistの3つがあります。随時、donelistの末尾にcurlistを接続し、curlistをクリアしたり、curlistの末尾にnxtlistを接続してnxtlistをクリアするという処理をタスクレットとして行っています。

タスクレットで処理しているということは、呼び出されている時点では割り込み禁止状態ではない、ということです。つまりrcu_readLlock()などで割り込みが禁止されていないということなのでデータを参照していないということになります。

割り込み禁止にしておくのは問題があるので2.6.24からは割り込みを禁止にするのではなく、rcu_read_lock()を呼び出した回数をカウントするように書き換えられています。

つまり、どのデータをロックしているか、ということは一切考慮していなくて、「ロックしているか、ロックしていないか」だけに注目しています。

さて、これでは「このCPUではデータを参照していない(rcu_read_lock()を呼び出していない)」ということは判りますが、他のCPUがrcu_read_lock()を呼び出していないということをどうやって保証しているのでしょうか。今度はこのあたりを追いかけてみます。

2008年08月03日

中国で繁殖したアオサ、アオノリだったので韓国に輸出、加工されて日本に輸出か?

中国山東省青島の沿岸に大量に漂着した藻について、青島市共産党委員会は2日、正体はアオノリだったとして、韓国に輸出することを明らかにした。

ちなみに、大紀元時報の記事では

今年7月に入ってから、五輪ヨットレース開催地の中国山東省青島市で原因不明の疫病が流行し、15日の時点で、青島の市街区だけで感染者数は16万人に達し、死亡者数は1251人に達したという。

今回の感染症は流行性脳脊髄膜炎に似ていることが報告された。その上で、間もなく開催されるオリンピックのヨットレースに影響を与えないように、今回の感染症情報を最高機密として扱うことが決定された。

脳炎だとすると、アオサの除去作業との関連が疑わしいのですが何せ中国のことで情報が出てこないうえに最高機密なので全く解りません。

そもそもなぜ感染症が最高機密なのでしょうか。そんなところでオリンピックをするつもりなのでしょうか。

2008年08月04日

Larrabee

以前は32コアという話も出ていたのですが、10コアだそうです。

図によるとインオーダでパイプラインも短いそうでPentium世代に近いものになるようです。

このコアが実はPentiumベースという話もあって、PentiumベースのCPUコアなら32コア載るでしょう、という話を2005年に書いていたので興味深い。

2008年08月06日

中国で流通した天洋食品の餃子を食べて中毒

やはり元からいろいろ入っていたとしか思えませんね。

しかし、中国国内で回収した餃子がなぜ流通しているのでしょうか。意味が解りません。

7月の洞爺湖サミット前に通知を受けたのに、なんでこの時期に発表になったのかというのはとても興味深いです。

簡単に考えると

中国政府
中国国内でも中毒事故が発生したことを日本政府に通知する。
日本政府
黙殺する事を決定。
日本報道各社
北京オリンピックの取材ため中国へ。
日本報道各社
中国国内でも中毒事故が発生したこと知る。
日本政府
隠しきれなくなることを懸念。
日本政府
このタイミングで発表。

2008年08月09日

スクロール描画

スクロールとかカーソル移動の速度を上げるために小細工。

20年くらい同じことで悩んでいるような気がします。どれもマシンを替えれば解決するというのが悩ましい。

N66SR-BASICでPUTでキャラクタ書いていたら遅くて困っていたのですが、MSXでスプライト使えば簡単に解決できたし、PC-8801でスクロールが遅いというのはPC-9801とかFM TOWNSとかX68000なら全然問題が無かったり、V30で遅くて苦労していたら80486で動かせば解決したり。

今もMediaGXで動かしているから速度に問題があるわけで、Pentium Mとかなら全く問題が無いはず。Xのドライバがfbdevとかradeonfbとかだとアレですが、こちらはこれで問題外。

2008年08月10日

のだめ カンタービレ 21巻 (AA)

11日発売らしいのですが、うっかり前日に発売されていることもあるので本屋に寄ってみました。

やっぱりありませんでした。

2008年08月11日

Xの座標系

符号無しということを失念していて、0以下になれば描画されないだろうから気にしなくていいやと思っていたら座標が65535とかになっててはみ出ました。

2008年08月15日

ハイティンクのマーラー

少し前に1,000円という価格にひかれてハイティンク指揮 ベルリンフィルのマーラー:交響曲第5番 (AA)を買って聞いて、いい演奏というわけではないのですがなんだか気に入ってしまったので、同じくベルリンフィルを指揮した交響曲第1番を買おうとしました。こちらも1,000円だし。

すると1番と2番のセット (AA)というものがあってこれが1,300円くらいで売られていたので、こちらを買いました。

やっとゆっくりと聴いたのですが、5番の微妙な残念感が微塵もない素晴らしい演奏でとても満足。1番はシモノフとバーンスタインのが素晴らしいと思っていましたが、これも素晴らしい。

残念なことに他の曲は廃盤なのか取り扱っていないようですが、再販してほしいところ。

2008年08月15日

ワールド・デストラクション (AA)

Amazonさんからオススメされたので予約。

セガというのがいい。

2008年08月18日

電池:要

リコーダを買ったのですが、Amazonでリコーダを検索してびっくり。

河合楽器の木製リコーダ (AA)なのですが、要:電池と書いてあります。これはもしかして電子リコーダなのでしょうか。

Athlon64 2000+ vs Intel Atom

この記事を見て「Atom涙目」と考えるのはうっかりさんです。ドジっ娘属性が付与されています。ちゃんと元記事も読みましょう。

AMDIntel
CPUAthlon 64 2000+8WAtom 4W
NorthbridgeAMD 780G11.4WIntel 945GC22.2W
SouthbridgeAMD SB700-WIntel ICH73.3W

サウスの消費電力が不明なのでちょっとアレですが、もともとIntelのサウスも発熱する傾向があるのでSB700の消費電力もICH7と同等かすこし少ないくらいだと思います。ですから、発熱のほとんどはノースのものと思われます。ノースで11Wも多く使ってるので、CPUで4W削ったくらいでは効果がありません。

つーか、発熱が気になるならARMでも使えばいいわけで、X11とEmacs、gccが動けばOSは問わないのでARM11の載ったノートを出してくれませんかNVIDIAさん。

2008年08月19日

ローカルディレクトリブラウザ(仮)

Compiz環境で動作確認していたらVESAで動かしているFIVAで描画がすっぽ抜ける事が判明。

XCopyArea()領域をコピーした場合GraphicsExposeが飛んでくる場合があるわけですが、それを受け取って処理する前にもう一度XCopyArea()でコピーしてしまうと謎の空白地帯ができてしまいます。

なのでXCheckIfEvent()でGraphicsExposeを探して描画し直すのですがそれでもすっぽぬけているような雰囲気。

WindowsだとスクロールはScrollWidowsEx()で行うのが定石で、こちらはまだ描画できていない無効化領域も考慮して更新してくれるのでかなり楽です。Compiz環境だとなんだかうまい具合に動いてくれるのでこちらも楽です。

何かあったらCtrl+Lで再描画してもらう、というのがお手軽な気がします。もしくはダブルバッファで描画するか。

2008年08月21日

oom killer

yum updateかけて寝たら、oom killerが発動してXが固まってました。泣ける。

2008年08月22日

ニコニコ動画

録音技術の発明によって音楽が実演と切り離されてしまい録音された音を楽しめるようになりました。なってしまったというべきかもしれません。

録音によって音が実演から切り離された結果、実演者と聴衆も切り離されたため音楽の在り方は変わってしまいました。昔は撮影できるだけの技術もなかったし、それを記録するメディアも無かったわけですが、技術はそれを克服し、GB単位のストレージと持ち運べる液晶ディスプレイを手に入れました。実演と音を切り離さずに楽しめる下地ができたのです。

録音によって切り離された実演と音が再びリンクできるようになったのですから、今度は実演者と聴衆を再びリンクさせたいところです。

その失われたリンクをもう一度リンクさせる、さらに時間と場所を問わずリンクさせる、まさに超時空ライヴの姿をニコニコ動画は示しているように思えます。

いや、私が載せた動画はコメントが10個くらいだったりして全然盛り上がっていないわけですが。

2008年08月23日

アシュケナージとハイティンク/コンセルトヘボウのラフマニノフピアノ協奏曲全集

アシュケナージとプレヴィンのペアのものは、ちょっとピアノが目立ちすぎてて好みじゃなかったので、評判の良いハイティンクとの演奏を探していたのですが、なかなか見つからなくて(2番と4番のものは良く見かけます)残念な思いをしていたら、偶然HMVで見つけたのでポイント2倍になる水曜日を待ってから確保。

コンセルトヘボウの音がなんとも言えません。ピアノも目立ちすぎず溶け込んでます。

2008年08月26日

SONY MDR-EX500発売

MDR-EX700は低音が出すぎるいまいち好みから外れたモデルでしたがこちらはどうでしょう。

MDR-EX700は16mmドライバなのでしかたがないところですが、MDR-EX90SLと同じ13.5mmのドライバなら形を変える必要は無かったのでは。

13.5mmドライバだとMDR-EX90と同じくアタックレートが低めの音になりそうですがダイアフラムが新規に開発されたものということなので期待。

MDR-EX90は柔らかくいい音を鳴らしてくれるのですがちょっと柔らかすぎるというかアタックレートが低めな音なのが曲によっては不満。

カタログには再生周波数は載っていますが、鳴れ!と指示してから指定した音量で鳴り出すまで、止まれといってから鳴り止むまでのレスポンスは記載されていないので難しいところです。

MDR-EX90SL (AA)

MDR-EX90SLは低音のアタックレートが低めというか音が出始めてからピークに達するで遅延するような感じがありますが全体的に音のバランスはちょうどよくて、残響の多いホールの録音なんかは綺麗に聴かせてくれます。

その代わり、柔らかい響きのためにMIDIの打ち込みをしていると音の立ち上がりが分かりにくいことや、突き刺さるような高音が出てこないのが不満でMDR-7506 (AA)も使ったりしています。こちらはこちらで家で使っていると周りの音がほとんど聞こえなくなるし、取り外しが微妙に面倒という不満もあります。イヤホンなら片方外してぶら下げておくことができますが、MDR-7506を取り外して首の回りに巻くと首がしまります。

MX500を探し出して使いたいところですが、入れていた箱が見当たりません。

やむを得ず、投入したのがこちら、MDR-E931LP (AA)

ところで、こちらのMDR-7506 (AA)は値段が高いのですが、何かの手違いでしょうか。

2008年08月28日

゚∋゚)

EUCで「゚∋゚)」とだけ書いてあるとShift_JISなのかEUC-JPなのか判断に苦しむので、ローカルディレクトリブラウザ(仮)の文字コード判別処理を手直し。


トップを狙う

Copyrigiht © 2008 びい