上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/8/23
linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えするLinux Kernel Watch。7月はOttawa Linux Symposiumがあった影響か、いつもより心なしかパッチの流れが盛況だったLKML。何か新しい展開が生まれたのでしょうか。
では、7月のLinuxカーネル関連の状況について、見てみましょう。
ついに来た、devfs削除の波紋
/devの管理をdevfsのみに依存していたユーザーは、新バージョンのカーネルをインストールして再起動したら、/devが空になっているのに衝撃を受けたはずです。
そう、devfsを削除したカーネル(2.6.13-rc3)が、Linusから初めてリリースされたのです。まだ正式リリース版ではないものの、LinusのリリースするRC版は多くの人が利用しています。LKMLには、その影響を受けた苦情のメールがいくつか流れていました。
これまでdevfsを利用していた人たちには、
- /devを静的に生成する
- udevに移行する
という2つの選択肢があります。とはいえ、両方ともdevfsとは運用方法が大幅に変わるため、インパクトは大きいといえます。
Greg Kroah-Hartman(以下Greg K-H)は、「1年以上前から消すと宣言していたのだから、驚くほどのことではないでしょう」「開発版カーネルなんてものはもうないのだから、2.6系を安定版カーネルと呼ぶのはちょっと違うかな」と主張していました。
devfsを利用していたユーザーの受難の日々はしばらく続きそうです。
タイマー割り込み頻度変更で議論沸騰
カーネル2.6.13-rc1にて、タイマー割り込みの頻度「HZ」が変更可能になりました。その際に、デフォルトの値が以前の
HZ=1000 |
から
HZ=250 |
になりました。このデフォルト値変更は多くの議論を巻き起こしました。
デフォルト値を250から1000に戻してほしいという要求に対して、Linusは「それが必要なユーザーが1000に変更したらよいだけだろう」と反論しました。そして、「『デフォルトを1000にするべきだ』と主張するのであれば、それが本当に良いということを示すデータを見せろ」というのです。
議論の焦点となっているHZは、前述したとおりシステムの割り込みの頻度です。その頻度で割り込み処理が発生し、プロセスの切り替えを行ったり、Linuxが内部的にクロックを数え上げるために利用している「jiffies」という変数の値が増大したりします。
割り込み頻度(つまりHZの値)を歴史的に見ると、例えばi386アーキテクチャにおいては「100」というように、アーキテクチャごとにそれぞれの値が設定されていました。カーネル2.6系列では、これが1000に変更されていました。そして、カーネル2.6.13-rc1からデフォルト値が250になったというわけです。
HZの値は消費電力に影響すると考えられます。では、HZの値を下げることによって、本当に電力消費が下がるのか? これを実際に計測しようとした人たちがいました。
250Hzを選んだのは、低い周波数の方が割り込み処理が少なくなり、処理に必要な電力が低くなるからである |
という説明に根拠があるのか、調査してみようというわけです。
結論からいうと、何も処理していない状態でも、
プロセッサが「C3」という状態に入らなければ消費電力は低下しない |
ということでした。また、
C3に入るのであれば、20%程度の差が出ることもある |
という結果を出していました。
Marc Ballarinは、現実的な利用状況における消費電力についてベンチマークテストを実施し、数値をメーリングリストに投稿しました。KDEの場合、artsdを動作させているとCPUがC3状態に入るのを阻害するため、消費電力をあまり低減できないことが分かりました。また、USB関連は定期的にポーリングする必要があるため、CPUの消費電力の観点からいうとあまり好ましくない動作をするらしいということも分かりました。
出典:Power consumption HZ100, HZ250, HZ1000: new numbersスレッド http://www.uwsg.iu.edu/hypermail/linux/kernel/0507.3/1904.html |
Linux-audio-devメーリングリストでは、音楽関連の人たちがsleepの精度やシステムの応答速度について議論を交わしています。
音声処理では、波形データを
|
という一連の流れを短時間で実施します。
音声処理ではレイテンシが重要です。サウンドカードへ出力するデータが必要になるまでに完了しなかった場合、「プチ」という音が出力されてしまいます。オーバーヘッドを無視すれば、HZは細かい方が良いことになります。また、現在は「HZ=1000」で動くようにアプリケーションの動作も調整しているため、この方面からも急に「HZ=250」などに変更されるのは困るという声が上がりました。
音声処理関係以外でも、タイミングに依存するアプリケーションはHZ=250になると影響が出てきそうです。また、selectで利用できる待ち時間の精度が変わってしまう、という議論も出ていました。
以前、parisc-linux MLで、PA-RISCのgprofなどにも問題が発生したことがレポートされていました。時間の取得にはtimes(2)関数を利用するのですが、その関数はCPU利用時間を「クロック数」で返します。クロック数をユーザーランドに見せる際の処理などがカーネルとglibcで一致していなかったために混乱が生じたようです。
タイマー関連については改善の必要性が認識されているようなので、今後タイマー関連の話題がさらに熱くなっていくでしょう。
1/2
|
|
||||
|
連載 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カーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|