[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:102298] Re: 組込Linuxドライバの作成方法


塩崎です。


From: Naoto Shimazaki <igy@xxxxxxxx>
Subject: [linux-users:102289] Re: 組込Linuxドライバの作成方法
Date: Thu, 25 Mar 2004 00:16:31 +0900
Message-ID: <87d672mg2f.wl@xxxxxxxxxxxxxxxxxx>

> > 4.3renoの頃にVM周りがごそっと変わったり、アーキ関係が見通しがよくなっ
> > たりしましたね。MachのVMっぽい(と言うかそのもの)って感じが良さげでした
> > ね。それをついで、4.4は綺麗になったんでしょうね。

ちなみに、デバイスドライバまわりの抽象化は NetBSD の成果を待つ
必要があります。


> > Naoto> 上にも書きましたが、幅広いコンテキストで呼ばれるルーチンが
> > Naoto> 割り込み状態の保存and禁止と復帰を対で扱うのは必然です。
> > 
> > ですよね。なぜ、その常識だと思っていた(少なくとも、Linux誕生以前、80年
> > 代後半に私が観たいくつかのカーネルでは)ことが無視されているのか、興味
> > が持てたりしますが。やはり、行き当たりばったり的なものなのでしょうか?
> 
> なぜかは知りません。
...
> 私には理由は分かりません。

たぶん、単に Linus がそこに思い至らなかっただけでしょう。
ちゃんとした設計をしないで ad hoc にプログラムを書いていくという
スタイルが初期の Linux だったと思います。

あるいは、save 用の変数を一つケチったか。
でも、それでは話にならず結局は save_flags() を使って入れ子に
してるわけですが。

今に至るまでこれがそのままなのは、まあ面倒くさいから放置してある
だけなのかもしれませんな。


> 余談ですが、多重割り込みをサポートしようとすると、割り込み
> コントローラを操作せざるを得なくなります。しかし、優先度
> (splXX) の操作のたびに割り込みコントローラのレジスタに
> アクセスするとはっきりと性能に影響します。そこで、「本当に
> 割り込まれるまでは割り込みをマスクしたフリをする。割り込まれて
> から改めて割り込みコントローラを操作してちゃんとマスクする。」
> なんてことをやります。非常に I/O の忙しい環境下では 20% 位
> 性能に影響したりしますから侮れません。

まあそれは x86 の話ですね。他の多くのアーキテクチャでは
CPU 自体が割り込みレベルの判別機能を持っていて、
この場合には CPU の制御レジスタの割り込みレベルを上げたり
下げたりするだけですから大したコストにはなりません:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/vax/include/intr.h?rev=1.14&content-type=text/x-cvsweb-markup

そもそも spl という仕組み自体が x86 向きではないんですね。
x86 そのものには割り込みレベルが 2 つしかないですから(許可と不許可)。
実際のところ、Linux には spl がないようにみえて、
実は 386BSD よりも素直に spl が実装されてると言えます。
CPU アーキテクチャを反映して、単に spl1 と spl0 の二つに
相当するものしかないだけです。もちろん、BSD カーネルはこれでは
まともに動かないと思いますが(動いても遅い)、Linux は逆にそれに
合わせて割り込みまわりを組み立ててあるわけですね。
x86 以外のところに持っていくと、せっかくの高級な割り込みレベル機能が
使われず、ちょっと勿体ないことになります。

インターフェースとしてこれが入れ子構造になってないのは、
上で書いた通り ad hoc なだけでしょう。


では。
--
Takuya SHIOZAKI / ASTEC, Inc.

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: