8月版 波乱続きのReiser4、マージに向けて一歩前進?


上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2006/8/29

linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2006年7月はどのようなことが起きたのか、見てみましょう。

カンファレンス会場からこぼれ出てきた話題

 7月には、Kernel SummitやOttawa Linux Symposium(OLS)などのカンファレンスがありました。これらの会場で交わされた刺激的な情報交換の余波が、MLでの議論の節々にも波及していました。

 まず、大きな反響があったのが、ptraceを置き換える機構「utrace」です。ptraceインターフェイスは、UNIXシステムにおけるデバッグのための機構として一般的に使われています。しかし実装により詳細が異なり、LinuxにおいてはCPUアーキテクチャによって実装の度合いも内容もマチマチであるというのが現状です。マニュアルには「独特で不可解」と書いてありますが、実装の面でもそれを裏打ちしていたのです。そのためGDBなどのptraceを利用するデバッグ用のアプリケーションとカーネル側のptraceの実装を複雑にさせるという結果を招いていました。

 この現状を打破するため、Roland McGrathが作ったのがutraceというわけです。utraceはモジュール構造として実装されており、ptrace互換インターフェイスもモジュールで提供されています。過去との互換性を提供しつつ、新しい面白い機能も実現できそうです。今後のptrace事情の改善に期待です。

 一方、Neil Hormanは「OLS会場で前に座っていた人たちと話をした内容に基づいてパッチを書いてみたよ」というメールをLKMLに流しました。そのパッチとは、Xがgettimeofdayを多発しなくても済むように、/dev/rtcから時間をmmapで取得できるようにするというものです。これは、「ユーザー空間のアプリケーションが無駄な動きをしているのを暴く」という趣旨のDave Jonesの発表(「Why user-space sucks」)の際に、Xがgettimeofdayをすごい勢いで呼び出していると指摘したことに呼応するものです。

 そもそもXがgettimeofdayを呼び出しているのは、タイミング情報を取得するためです。タイミング情報をユーザー空間からメモリマップで取得できるようにすれば、システムコールを毎回発行する必要はなくなります。Theodore Tsoは、「Javaのガベージコレクタもこういうものを必要とする」とコメントしました。一部のアーキテクチャでは、VDSO(2006年6月号参照)版gettimeofdayとしてすでに実装されていますが、まだ一般的な仕組みはありません。実装の詳細に関しては今後も議論が続きそうですが、何らかの形で実現はされそうです。

 Greg K-Hは、「OLSでいろいろな人と話をして、デバイスの認識をマルチスレッドで並列で行いたいという要望があるのを思い出したので、パッチを書いたよ」と「Multi-threaded device probing」と題したメールを投稿しました。PCIバスとUSBでデバイス検出処理を並列動作させるパッチです。彼が試してみたところ、複数のCPUが載っているマシンでかなり高速化するのは当然として、単一CPUのノートPCでもOSの起動処理が0.4秒くらい高速になったということです。

 Stefan Richterは、「SCSIやIEEE1394についても並列化の動きがある」とコメントしました。多くのデバイスがつながっている大規模なシステムでは、起動時の待ち時間が長くなります。それが並列化によって改善されるとよいですね。

関連リンク:
ptraceのマニュアル
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/ptrace.2.html
gettimeofdayのマニュアル
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/gettimeofday.2.html

Xenマージへの道のり

 Chris Wrightは、Xenに関する一連のパッチをLKMLに投稿しました。まず、SMPのサポートなど複雑な部分は後に回して、i386のシングルプロセッサ用Xenのサポート追加を目標としているようです。

 投稿に対して、Arjan van de Venたちがレビューし、いくつかコメントをしていました。XenのDomUカーネルは、実CPUが提供する機能をどこまで見るべきなのかという話から仮想化ネットワークでのARPの投げ方に至るまで、細かい設計上の議論が展開しています。これからコードを磨き上げる段階のようで、Andrew Mortonのツリーに取り込まれたり、Linusのツリーに取り込まれたりするのはまだ先のようですが、楽しみですね。

1/2

Index
Linux Kernel Watch 8月版
 波乱続きのReiser4、マージに向けて一歩前進?
Page 1
 カンファレンス会場からこぼれ出てきた話題
 Xenマージへの道のり
  Page 2
 ReiserFSの苦難
 request_firmwareで複数バージョンをどう扱う?
 -stableの進ちょく

連載 Linux Kernel Watch


 Linux Squareフォーラム Linuxカーネル関連記事
連載:Linux Kernel Watch(連載中)
Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします
連載:Linuxファイルシステム技術解説
ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する
特集:全貌を現したLinuxカーネル2.6[第1章]
エンタープライズ向けに刷新されたカーネル・コア
ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する
特集:/procによるLinuxチューニング[前編]
/procで理解するOSの状態

Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する
特集:仮想OS「User Mode Linux」活用法
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
Linuxのカーネルメンテナは柔軟なシステム
カーネルメンテナが語るコミュニティとIA-64 Linux
IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間