[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:21451] Re: Linuxの割り込みについて
-
From:Norimasa Matsumoto
-
Date:Wed, 3 Dec 2003 18:20:56 +0900 (JST)
- Subject: [plamo:21451] Re: Linuxの割り込みについて
- From: Norimasa Matsumoto <matsu@xxxxxxxxxxxxx>
- Date: Wed, 03 Dec 2003 18:20:48 +0900 (JST)
松本@兵庫県です。
_Message-Id: <43C3B69BDD1913sios_hs@yahoo.co.jp>
_From: "H.Shiozaki" <sios_hs@yahoo.co.jp>
_Date: Sun, 30 Nov 2003 02:11:44 +0900
正直なところ、このスレッドは見なかった事にするつもり
でしたが、ML を読んでいる人に誤ったメッセージを与えて
いないかという心配がありましたので、一応反応させて頂き
ます。私が反応する事で、かえって誤解を深める心配が無き
にしもあらずですが。
> そこで,Linuxでは,IRQ(0から15),NMI,APIC 以外に
> Kernel又はOSが,動作する要因は何があるのでしょうか,
> またはカーネルソースのどの当たりを調べたら良いかを
> 識者の方に,教えほしいのですが。
同じ i386系でも、マシンや、カーネルによって異なるので、
これをというより、全部見ましょうと言う事になると思います。
たぶん idt_table をいじっている物を中心に探せば良いと思い
ます。set_*_gate() という関数郡が idt_table を操作している
ようです。
ユーザ空間からカーネルへの移行はさまざま場面で行われま
す。irq にこだわっていると何も見えて来ません。
メモリー、IOポートへのアクセス、未定義命令の実行等々。
あと、AT互換機の常識としてバスを長時間握って離さない
周辺機器の存在も忘れてはなりません。昔、RT-Linux を使って
いて、メインメモリと、VRAMをシェアするタイプのマザーボード
で苦労されたという方の話を聞いた事があります。バスマスタ
とか DMA とか、高性能そうな単語の入ったデバイスも要注意だと
思います。
さて本題です。本来なら、実機とそれなりの測定機が欲しいし、
テストコードも示さずに何が分かるのかという気もしますが……
> ところが,Linuxでは,ほぼ,512msec毎に約52usecの誤差
> (遅れ方向)が発生します。(CPUは233MHzのPentium)
これ、自信ありますか? 周期を 0.1msec にすると 51.2msec
毎に変わりませんか? ループ一回、回す毎に 8 Bytes メモリ
を消費していませんか?
興味の無い人にはただのゴミですが、
http://www.netfort.gr.jp/~matsu/plamo/gomi/chk_delay.c
にサンプルコードを示します。ゴミのようなコードですが、
念のために Copyright 表示があります。GPLでお願いします。
基本的に危険なプログラムですので、コードをいじる際には
細心の注意を払って下さい。一歩間違えるとカーネルが死にます。
最適化オプションが必須です。root権限を要します。
このプログラムは
#define COUNT 10000
で示される回数 for loop を回します。その間、loop1回に要した
マシンサイクル数を、変数 data に納めていき、あとでその結果を
表示します。
10000 行結果を表示するとうるさいので、100cycle 以上要した
物だけ表示するようにしています。
たぶん 512回に一度のペースで、極端に時間が掛かる事が分かる
と思います。
これを解消する方法は、ソース中の /* page alloc start */
から /* page alloc end */ の間のコメントアウトされた、部分
を有効にする事です。
これらのテストは、linux 2.4.22 で行っています。カーネルの
バージョンが異なれば結果も異なる可能性があります。
このプログラムは大変危険で、遊びとしては良いと思いますが、
人に使わせたり、仕事で使うのは躊躇させられます。
このプログラムに含まれる、double cpuclock(void) という
関数は、pentum 系のCPU のクロックを簡易計測する物ですが、
一般ユーザ権限で実行でき、安全だと思います。
ntpd で "周波数同期" の取れたマシンではそれなりの結果が
出そうです。
--
松本 徳真
Norimasa Matsumoto
E-mail: matsu@netfort.gr.jp
- Follow-Ups
-
- [plamo:21520] Re: Linuxの割り込みについて, H.Shiozaki
[検索ページ]
[メール一覧]
Plamo ML 公開システム