Path: sran265!katsu From: katsu@sran14.sra.co.jp (WATANABE katsuhiro) Message-ID: Date: 11 Jan 93 09:18:28 Organization: Software Research Associates, Inc.,Japan In-reply-to: ryu@sushi.goldman.co.jp's message of 10 Dec 92 06:14:40 GMT Newsgroups: fj.unix,fj.sys.sun Followup-To: fj.unix Subject: effects of kernel reconfig (Re: open 257 files in a process) Distribution: fj References: <1072@spngw.sysplan.co.jp> (Followup-To: に注意)  フォローの遅さなら *.jp で十指に入るであろう渡邊@SRAです。  kernel の reconfig について誤解があるようです。reconfig は当然の ことながら re-compile とは全く違うものです。 記事 <1072@spngw.sysplan.co.jp> で inoue@sp01.sysplan.co.jp (Tadanori Inoue) さんいはく > 1 プロセスにおいて、オープンできるファイルの数を > 調べたところ 64 であった。これを 256 に増やしたい。 > NOFILE_IN_U が 64 になっていた。ここを 256 に書き換え、config > をやり直し、立ち上げ直した。(vmunix が確かに新しいものと > なっているのに 64 しかオープンできない) また、記事 で ryu@sushi.goldman.co.jp (Masahiro Yanagisawa) さんいはく > csh> limit > descriptors 64 > この64っていう数字は何処でデフォルト設定されるんでしょう? > #define NOFILE 257 /* max open files per process */ > #define NOFILE_IN_U 257 > #define FD_SETSIZE 257 > > とパラメータを変えて reconfig してみたんですが、 > 64, 256 というデフォルトに変化は無いようでした。  kernel の reconfig では、リンクするモジュールの選択や、特定の変数の 初期値の設定ができる程度にすぎません。オブジェクトは既にできあがって いるのですから、ヘッダーファイルを書き換えて reconfig することでは、 変数を好き勝手にいじるとか、データ構造を変更するとかが自由にできる わけではないのです。  NOFILE_IN_U などの変更は user 構造体の変化を引き起こす(べき)なので、 到底 reconfig で解決できるはずがありません。  言い換えると、 記事 で moto@nalgo.co.jp (MOTOKADO Yoshihiro) さんいはく > types.h で > > #define FD_SETSIZE 256 > > となっています。 > 既にコンパイルされたプログラム(csh 等)ではファイルディスク > リプタ数の上限は 256 であるとの前提の基に動作(select(2))し > ています。カーネルでいくらファイルディスクリプタ数を増やして > も、これら(既にコンパイルされたプログラム)は対応できないで > すね。つまり、ファイルディスクリプタの数を 256 + 1 以上にす > るには、(select(2)を用いているであろう)全コマンドを再コン > パイルする必要があるのではないでしょうか? ということが、そもそもコマンド以前にカーネルについても いえてしまっているわけです。 -- 渡邊克宏@SRAソフトウェア工学研究所