(toppers-users 1726) カーネルバッファと可変長メモリプールについて

倉本 雅史 mkuramoto_1967 @ yahoo.co.jp
2004年 11月 3日 (水) 13:04:23 JST


倉本です。

カーネルバッファについて質問です。

*.cfgファイルでVDEF_KMB(X)を定義したとき、カーネルバッフ
ァとしてBSS領域に確保されるのは X*4 バイトになるようなの
ですが、これは間違いないでしょうか?

それを前提に次の質問ですが、VDEF_KMB(X)で領域を確保した
として、一番最初のacre_mplで確保できる可変長メモリプール
は、カーネルバッファから取る場合、最大で(X/4)-αバイトの
ようなのですが、これは仕様なのでしょうか?

ソースを見たところ、カーネルバッファを管理する__kernel_bufmgr_kmemb
の初期化時にサイズ情報としてVDEF_KMBで定義した値がそのま
ま入れられているようです。一方でacre_mplで確保される領域
はバイト単位であり、かつ、T_CMPLのmplが0の時はカーネルバ
ッファから取られますので、前述のように(X/4)-αまでしかと
れないということになってしまうと思うのですが。

以上、よろしくお願いします。