SGI KDBを使ったカーネルデバッグスレat LINUXSGI KDBを使ったカーネルデバッグスレ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト100:名無しさん@お腹いっぱい。 01/05/31 08:56 11 名前: login:Penguin 投稿日: 2001/05/31(木) 04:35 .'⌒⌒丶 _ ′从 从)_ もう寝る | __ヽゝ・_・ν | |\ ⌒⌒⌒⌒⌒\ | \ \ \ |⌒⌒⌒⌒⌒| \ |_____| 101:login:Penguin 01/05/31 11:06 >>98 ユーザが生成できるプロセスMAX数が設定できないの? MagicKeyでも殺せないの? 102:オリジナルスレの1 01/05/31 12:01 >>98 ソースを見てみてデバッグしてみた。101が正しいな。 fork.cのdo_fork関数に以下のようなコードがある。 retval = -EAGAIN; if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur) goto bad_fork_free; atomic_inc(&p->user->__count); atomic_inc(&p->user->processes); でp->userはsched.hを見るとuser_structだから、user_structの定義を見ると これもsched.hにある。 struct user_struct { atomic_t __count; /* reference count */ atomic_t processes; /* How many processes does this user have? */ atomic_t files; /* How many open files does this user have? */ /* Hash table maintenance information */ struct user_struct *next, **pprev; uid_t uid; }; これらよりコメントを見れば分かるけどprocessesはこのユーザコンテキスト 上でいくつのプロセスが走っているかを示している。それを p->rlim[RLIMIT_NPROC].rlim_cur と比較してそれ以上になったら fork処理を失敗させている。rlim_curはfork_initでイニシャライズ されていてmax_threads/2になっている。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch