Linux Kernel Watch

8月版 割り込み頻度変更で消費電力は低下するか?

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

リリースプロセスは改善するのか?

 Ottawa Linux Symposiumで、リリースプロセス改善の提案がありました。この議論はLKMLで継続して行われました。その結果、大きな変更については、

  • 新しい安定リリースを実施した直後の2週間でマージする
  • それ以降は修正のみを取り入れて安定を図る

という方針が打ち出されました。

 2.6.13-rcXのシリーズではまだ採用しないということなので、リリースプロセスを改善するとしたらそれ以降になります。本当に実現するのか、2.6.14の開発動向が楽しみです。

7月の-stableリリースは2.6.12.3のみ

 7月にリリースされた安定版カーネルは、2.6.12.3だけでした。10のパッチを適用して、7月15日にアナウンスされました。

 このリリースで最も議論を巻き起こしたのは、無線通信用の6PackドライバのSMP対応についてです。6packドライバは、make menuconfigにおいてSMPでは動作できないという設定(BROKEN_ON_SMP)になっていました。カーネル2.6.12.3では、それをSMPでもコンパイルできるように変更しました。しかしこれに対して、Adrian Bunkは「この変更はほかのブランチにも適用されていないので、-stableツリーで実施すべき変更ではない。十分テストされていない」とコメントしました。それでも、結局2.6.12.3の変更に含まれています。ハム関連のユーザーの間で十分テストされている、ということのようです。

 x86_64アーキテクチャの32bit互換モードのコードにおけるメモリリークの修正など、一部の変更については「変更が大き過ぎる」と反論が出たために却下されました。

 パッチの厳密な適用基準が明確になっているわけではないですが、-stableカーネルは合議制を採用して順調にメンテナンスされているようです。

参考リンク:
  -stableリリースのgitリポジトリ
(Chris Wright)
http://www.kernel.org/git/?p=linux/kernel/git/chrisw/linux-2.6.12.y.git;a=summary
  -stableリリースのgitリポジトリ
(Greg K-H)
http://www.kernel.org/git/?p=linux/kernel/git/gregkh/linux-2.6.12.y.git;a=summary

gitで問題のカーネルリビジョンを検索

 本連載でも毎回のようにウォッチしているソースコード管理ツールgitは、その後もすごい勢いで開発が進んでいましたが、そろそろ開発も落ち着いたようです。

 しかしながら、またgitのバックエンドのデータの形式が変更されました。ファイルをひとまとめにするPACKED形式が導入され、多数のファイルをこまごまと転送しなければならないという従来の問題を解決しています。その影響で、古いバージョンのgitでは、最新のLinuxカーネルのgitリポジトリからチェックアウトができない、などの弊害が出ました。

 そんなgitに、カーネルの問題がどのリビジョンで発生したのかを探索するのに便利な機能が追加されました。

 git-rev-listコマンドに--bisectオプションを指定すると、ちょうど真ん中のリビジョンが表示されます。また、タグ名の最初に「^」(否定)を付加すると、「そのタグに含まれているリビジョンは除外する」という意味になります。例えば、下記のコマンドは「2.6.12に入っているけど、2.6.12-rc3に入っていないリビジョン」の一覧を取得し、その真ん中にあるリビジョンを表示します。

git-rev-list --bisect v2.6.12 ^v2.6.12-rc3

 これを応用して、Linusはgit bisectコマンドを実装しました。うまく動くリビジョンと動かないリビジョンを指定すると、その間のリビジョンをチェックアウトします。次にそれをテストして、そのリビジョンがうまく動いたか動かなかったかによって次に試すリビジョンを決めます。最終的には、問題が発生した変更点を割り出すことができます。

git bisect start 
git bisect good 17af691cd19765b782d891fc50c1568d0f1276b3 
git bisect bad c101f3136cc98a003d0d16be6fab7d0d950581a6 



git bisect goodもしくはbad 次のリビジョン
  bisectを開始
  良いリビジョンを指定
  悪いリビジョンを指定
  その間にあるリビジョンがチェックアウトされる

崖っぷちに立たされたFUSEの行方は

 この連載でも何度か取り上げているFUSE(Filesystem in Userspace)ですが、まだ-mmツリーに残っており、Linusのツリーにはマージされていません。

 セキュリティ対策の実装方法の方針については同意を得られていないが、取りあえずマージしてみよう、という方向で検討を重ねていました。しかし、議論が進むにつれて、風向きが変わってきました。

 最終的にAndrew Mortonは、「v9fs()やNFSで提供できない機能ではないので、その方向で検討してみてはどうか」と提案しました。Miklos Szerediがこのまま引っ込んでしまうのか、何か改善策を引っさげて反論してくれるのか。FUSEの動向も目が離せません。

注:v9fsについては、
Linux Kernel Watch 7月版 gitベースのカーネル2.6.12に問題発生!?
2ページ目も参照。

参考リンク:
  FUSE http://fuse.sourceforge.net/
  v9fsプロジェクトページ http://v9fs.sourceforge.net/

(以上、敬称略)

2/2

Index
Linux Kernel Watch 8月版
 割り込み頻度変更で消費電力は低下するか?
  Page 1
 ついに来た、devfs削除の波紋
 タイマー割り込み頻度変更で議論沸騰
  Page 2
 リリースプロセスは改善するのか?
 7月の-stableリリースは2.6.12.3のみ
 gitで問題のカーネルリビジョンを検索
 崖っぷちに立たされたFUSEの行方は

連載 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 記事ランキング

本日 月間