Linux Kernel Developers Summit 2005報告(初日)

今年も例年通りオタワにてLinux Kernel Developers Summitが開催された。Linux Kernel Summitは、世界各地から選ばれたカーネル開発者だけが50人程度招待され、今後一年のカーネル開発の方向性に大きな影響を与える重要な会議である。二日間に渡って開催されたLinux Kernel Summitについて簡単に報告する。

カーネルサミット1日目

CPU Panel

最初のセッションでは、CPU PanelというタイトルでIBM、Intel、AMDから 各社のCPUについての簡単な紹介がなされた。

IBMからは、Cellプロセッサのアーキテクチャの説明を中心に、非対称な マルチコアCPUであるCellをどのようにLinuxで扱うかといった点にも 触れていた。Intelからは、IntelのCPUのロードマップの紹介、ならびに マルチコアのプロセッサについて、性能面よりむしろパワーマネージメントに主眼を置いて説明がなされた。AMDからは、AMDのプロセッサに導入される仮想化技術についてと、今後のマルチコアプロセッサの展開について説明がなされた。

IO Buses

このセッションでは、特にPCIバスのエラー処理について議論がなされた。デバイス関係では仕様通りに動いてくれないことがあって困るのだが、といった愚痴に近い話も出た。

IOMMU

IOバスについてのセッションに続き、LinuxでのIOMMUサポートについてのセッションが行われた。IOMMUは、デバイスからメモリアクセスを行う場合に、デバイスに対して仮想アドレス空間を提供するものであり、PC系のアーキテクチャには馴染みがないがサーバ系のアーキテクチャではよく採用されている。

LinuxではIOMMUのサポートが不十分なので、IOMMUサポートをどのように 行うかといった点や、デバイスに対しIOMMUを経由してメモリアクセスを 行わせることの性能インパクトはないのか(IOMMUをバイパスして物理メモリに直接アクセスさせる方が性能が出るのでは?)といった点について議論が行われた。また、IOMMU経由でアクセスするためのメモリ領域確保の方法についての議論もあった。

Memory Management: defragmentation and fragmentation avoidance

メモリ管理周辺の話題について、3つのセッションが開かれた。

ブート後ある程度時間を経過すると、物理的に連続した領域のメモリを確保することは困難となる。断片化したメモリをまとめて連続した空き領域を作る(defragment する)ための方法と問題点がチェアから紹介された。defragmentationについての話が中心で、fragmentation回避の話はあまり出なかったように思う。

Memory Management: Memory Pressure in Linux

このセッションでは、メモリが逼迫した状況でどのように回収処理を行うかについての議論が行われた。特に、dirtyなページをメモリ回収のために書き出す際に、現状のようにいつもkswapd経由で行うのが良いのか、あるいはページフォールトを起こしたプロセスが行うのが良いのか、といった点を中心に議論が行われた。また,カーネル空間のメモリとして、特にディレクトリエントリキャッシュがメモリを圧迫しやすいので、それをどう軽減するかといった話もあった。

Memory Management: mm scalability

メモリ管理についての最後のセッションでは、CPU数が多くなったときのページフォールトハンドラの処理時間が大きい問題について簡単な説明があった。

ExecShieldの話

元々はempty slotとして留保されていた時間にRedHatのExecSchieldの 紹介があてられた。ExecShieldはセキュリティ強化のためのツールで、データ領域を実行不可にしたり、glibcレベルでちょっとしたチェックをするようにしたりといった強化をしているとのこと。また、プログラムの実行のたびにメモリアドレスが一定にならないようにずらす工夫もしている。紹介が中心で何かの議論に発展するということはなかった。

Virtualization

XenやUMLなどの仮想化をサポートするにあたって、共通化できそうな部分は共通化できるようにしようという話だった。さらに細かい話は OLSでのBOFで行うとのこと。また、Xenをmainlineへマージするにあたって、何をする必要があるか、いつやるのか、誰がやるのかを考える必要があるという話も出た。

VFS/Filesystem

generic_file_write() あたりの、間接関数呼び出しなどでとても読みにくくなってるコードを単純化したいということを中心に議論された。direct IO のサポートの導入のされ方がコードを難解にしているという指摘がなされた。

5 minute speed talks

初日の最後のセッションは,飛び入り形式で何か話したいテーマがある人が話をする時間にあてられた.ドライバモデルの話や組み込み向けにカーネルサイズを小さくしたい話などが出た.

Kernel Summit2日目レポート