Linux開発の中心人物であるLinus Torvalds氏は、自身の「自覚が高まり、強引な態度を控えるようになった」と考えている。Torvalds氏は、開発者コミュニティのメーリングリストであるLinux Kernel Mailing List(LKML)での暴言が原因で、2018年末にLinuxカーネル開発の現場を1カ月ほど離れていた。その後、復帰してからの自己評価が冒頭の発言である。
しかし、同氏が「必ずしも社交性が増したわけではない」と述べているように、メンテナーとのやり取りすべてが穏便に運んでいるようではなさそうだ。
Torvalds氏に早速かんしゃくの矛先を向けられたのは、オーストラリア人プログラマーのDave Chinner氏である。Chinner氏は、多くのLinuxディストリビューションがサポートしているSilicon Graphics製のXFSファイルシステムを管理している。
Torvalds氏はメーリングリストで、「Dave、たわ言を言うな」とChinner氏に切り返した。
Chinner氏が、「ページキャッシュはいまも、ダイレクトIOよりかなりスピードが遅い」とコメントしたことに対する反論だ。Chinner氏は、ストレージマザーボードのインターフェースである「Peripheral Express Interconnect Express(PCIe)4.0」が普及するにつれ、この問題がますます顕著になると考えている。
同氏は、ディスクベースのストレージに対応するためにページキャッシュは必要だが、性能が犠牲になると懸念を示している。
Chinner氏は、メーリングリストに次のように投稿した。「ページキャッシュはいまも、ダイレクトIOよりかなりスピードが遅い。そしてNVMeのSSDが高速になればなるほど、そのギャップは広くなりつつある。PCIe 4のSSDで、この問題はますます明白になるだろう。もはやページキャッシュを使用する理由は、旧態依然としたディスクストレージを使う手頃な価格のシステムやmmap() をサポートするためだけになりつつある」
それに対してTorvalds氏は、「前も同じようなことを主張していたが、それは完全なたわ言だ。その時も、はっきりそう言ったはずだ。なぜ、そんな馬鹿げたことをいい続けるんだ?」と応酬した。
Torvalds氏によれば、ページキャッシュは、キャッシュとして適切な目的を果たしてる。
「『ページキャッシュ』のキーワードは『キャッシュ』だ」と、Torvalds氏はコメントした。
Chinner氏は、公開されているメールスレッドで、「ページキャッシュは、アトミックレンジの操作を実行できるように設計されていない」と述べ、ページキャッシュの果たす役割について論議している。
「汎用のページキャッシュコードによる、おそろしく非効率的なブロックマッピングをページごとに行わないですむよう、fs/iomap.cコードを作成して、IO向けにレンジベースのマッピングを行えるようにした。それによりバッファ付きIOのスループットを30%以上改善できたが、それはページごとではなく、IOごとに1回のマッピング参照ですむからだ」(同氏)
しかしTorvalds氏は、Chinner氏の言い分を否定し、そのような考えを広めようとしている開発者は「無能だ」と痛烈に批判した。
「Dave、キャッシュはちゃんと機能する。そう思わない者は無能なだけだ。ファイルシステムによるアクセスの99%はキャッシュに保存され、IOを行うことは決してない。ページキャッシュはファイルシステムを美しく処理している」(Torvalds氏)
それに対してChinner氏は、Linuxの行動規範に従い「礼儀正しく議論する」ことをリマインドし、カーネル開発者がプロらしく論議できる雰囲気を作ろうと、次のように回答した。
「その通りだ。ページキャッシュは多くのストレージより高速なため、問題なく機能するケースはたくさんある。しかし、私が指摘したのは、そのことではない」「わたしが、IOの並行処理、ページキャッシュ、既存コードのアーキテクチャー上の不具合などについて書いた長文のメールの中から、たった1つの記述を前後関係を無視して引用し、まったく新しい文脈をでっちあげた上で、私がキャッシュやページキャッシュのことを全く理解していないと非難し始めた」「プロらしからぬ振る舞いだ。しかし残念ながら、まったく予測できた反応だとしか言いようがない」とChinner氏は応じている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。