テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(writeboost report) ミクラスによるコードレビュー

ついに, レッドハッドの開発者による詳細なレビューが始まった. どうやら, ミクラスが担当になったようである.

http://www.redhat.com/archives/dm-devel/2013-October/msg00024.html

ミクラスは極めて優秀な開発者である. まず第一に彼はSpadFSの開発者であり, この開発を元にしてプラハカレル大学から博士号を得ている(http://artax.karlin.mff.cuni.cz/~mikulas/spadfs/THESIS.PDF). また彼はレプリケーションに関する技術において特許も取得している(http://www.patentbuddy.com/Inventor/Patocka-Mikulas/16213620). ずっと一線級でストレージカーネルの研究開発を続けていたすごい開発者である.

こういう人間に, カーネルモジュール全体のレビューとテストをしてもらえる機会は, そうそうないだろう(というか日本に閉じこもっていたらたぶん皆無だろう). しかも開発開始から10か月(うち三ヶ月は開発中止), コミュニティへの提案から4か月だから, 色々な後押しはあったにせよ, おれもすごいということだろう.

イギリスに行くまでに, もう一段階の進捗を得ることがおれの使命だと思う. レッドハッドの投資に対して全力で報いる必要がある. また, ホットな開発者としてLinuxConに行くことが, 投資してくれている会社への恩返しであると思う. コールドな開発者をイギリスまで飛ばしたらバカ丸出しだ.

ミクラスの指摘は大体, ロックとポータビリティに関する. 総合的な印象としては, ミクラスは「fixは必要であるが, 直せるレベルである」という感覚を持っているように思う.

ポータビリティは素直に受け入れればいい. 彼らはwriteboostを取り込むことを考えていると思う. この時, 重要なのは, サポート出来るマシンを出来るだけ増やすことである. あるマシンでは動かないということが大きな損害になる. 私にとってはオープンソースは自己表現の一つでしかないが, 彼らにとってはプロダクションであるから, この点にシビアになることに異論はない. 拒否することは何の得にもならない.

ロックについては, 大きく「アウトオブオーダー実行を無視するな」「ポーリングはやめろ」である.
まず, 前者は的確である. 残念ながら考えていませんでしたというのが正直なところだが, どういう展開になっても良いような形で設計しているという自信はあるので, ミニマムな修正で済ませられる可能性がある. ただし, 大域的な設計変更に手を出した方がトータルで得と判断すれば, 大革命を行うことも辞さない. パッと思いつくのは, ミクラスが指摘するように, migrate_procだけではないかと思う. このコードは非常に複雑なので, こういったことも起こる. まずは変数を減らすことを考えたい. バリアは美しくない. そういうものが必要ない美しい設計を行うのが本手だと思う.
後者については, 対象はflush_procとmigrate_procであるが, どちらも反論しようと思う. 反論の幹は, 「I/Oが多い時はどうせ眠りません. I/Oが少ない時はCPUが余っています. あなたは, 1秒に一回のコンテキストスイッチによる電力消費を気にして設計を壊すつもりですか?」です. 特に, migrate_procについてはミクラスを説得する自信がある. だけど, flush_procについてはこちらが折れる可能性もある. 主張は的確に構成され, 一発で斬る必要がある. ポイントをまとめて, 英語化しなければいけないため, かなり骨のある仕事になる.

その他, 「kmalloc_retryはやめろ」は受け入れる. 知らなかっただけ. 「kcopydを使え」は検討が必要. おれの以前の検討によると, kcopydも一度考えたが棄却したはずだったが, 以前のリポジトリを消してしまったので, 検討メモが残っていない. もしかしたらkcopydで良いかも知れない. これがフィットするならば採用する. 「mempoolを使え」は微妙だが, 反発するコストを考えたら受け入れたら方がいいかも知れない. APIも十分理解しているし, 負荷は低い. 最後に, 「modulate_procは存在価値なし消せ」は意味不明なので反論する.

この他にも, Daveへの反論や, 永続メモリへの応用なども種を撒いている. これらがどう育っていくかもおれとしては楽しみ. ストレージカーネル界で今もっとも熱い機能じゃないかな, writeboostは. もっと多くの人を巻き込みたい. 色々な方面からコメントをもらうことで, オープンソースコードは成長する.

(追記)
早速一の矢を放った.
https://lkml.org/lkml/2013/10/6/53