私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレSGI KDBを使ったカーネルデバッグスレ
kernel スレッド一覧へ / kernel とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>148
1必死だな。
1必死だな。
>>138
ほれ、出てきてやったぞ。どうすんだ。
ほれ、出てきてやったぞ。どうすんだ。
本物かどうか試験してやろう
jiffies が10倍早く回るようにする為にはどうすればいい?
jiffies が10倍早く回るようにする為にはどうすればいい?
なかなか面白いな。このスレ。
>オリジナルスレの1
煽りはほっといて質問
プロセステーブルが一杯になったからと言ってシステムの動作がおかしくなるのは何故だ?
psやkillが上がらないのは当然として、kernelの挙動には影響無いはずだが。
デバッグの格好の対象だと思うがどうだ。
あと、プロセスを上げず(killコマンドじゃなくて)にシステムを正常に戻す方法はないのか?
>エセLin注
プロセステーブル一杯でプロセスが上がらなくなるのはLinuxだけじゃないぞ。
>オリジナルスレの1
煽りはほっといて質問
プロセステーブルが一杯になったからと言ってシステムの動作がおかしくなるのは何故だ?
psやkillが上がらないのは当然として、kernelの挙動には影響無いはずだが。
デバッグの格好の対象だと思うがどうだ。
あと、プロセスを上げず(killコマンドじゃなくて)にシステムを正常に戻す方法はないのか?
>エセLin注
プロセステーブル一杯でプロセスが上がらなくなるのはLinuxだけじゃないぞ。
うん、もうやめようよ。
1の自作自演はもう限りなく有力ではあるが、
これ以上ひっぱるのはやめよう。
優しく1を見守ってやろう。
「>>115 1発見!」とかもなしな。
言いたいのはわかるが、おさえろ。
本来の趣旨に戻してやってくれ。
1の自作自演はもう限りなく有力ではあるが、
これ以上ひっぱるのはやめよう。
優しく1を見守ってやろう。
「>>115 1発見!」とかもなしな。
言いたいのはわかるが、おさえろ。
本来の趣旨に戻してやってくれ。
>>156
ゲキウザ
ゲキウザ
>>157
デーモンはforkに失敗して死ぬことはあると思う。
ただ、inetdが死んだからってkernelには影響ないと思う。
inetdもユーザプロセスだからな。
initがプロセス作ろうとして失敗するからか?
>オリジナルスレの1
本物かどうかのチェックなんてどうでも良いからこっちやろうぜ。
デーモンはforkに失敗して死ぬことはあると思う。
ただ、inetdが死んだからってkernelには影響ないと思う。
inetdもユーザプロセスだからな。
initがプロセス作ろうとして失敗するからか?
>オリジナルスレの1
本物かどうかのチェックなんてどうでも良いからこっちやろうぜ。
>>155
うーん、俺のところではそういう状況になってないからはっきりとした
ことは言えないが、2.2系ではプロセステーブルが一杯になっても
確かにカーネルの挙動には影響ないはず。
2.4系ではforkが落ちる=メモリ確保失敗だから、他のカーネルモードドライバ/
ファイルシステムもメモリ確保できないはずだから挙動はおかしくなるはず。
こうなったらもう、どうにもならない。仕様だね。
うーん、俺のところではそういう状況になってないからはっきりとした
ことは言えないが、2.2系ではプロセステーブルが一杯になっても
確かにカーネルの挙動には影響ないはず。
2.4系ではforkが落ちる=メモリ確保失敗だから、他のカーネルモードドライバ/
ファイルシステムもメモリ確保できないはずだから挙動はおかしくなるはず。
こうなったらもう、どうにもならない。仕様だね。
>>161
こらこら適当に回答するんじゃない。なんだか投げやりだぞ。頑張れ
if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur)
goto bad_fork_free;
これでなんでメモリ確保のエラーなのだ?
メモリは空いてるはずだが。
おれもカーネルソース見てみるかな。ちと興味が湧いた 藁
こらこら適当に回答するんじゃない。なんだか投げやりだぞ。頑張れ
if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur)
goto bad_fork_free;
これでなんでメモリ確保のエラーなのだ?
メモリは空いてるはずだが。
おれもカーネルソース見てみるかな。ちと興味が湧いた 藁
違う違う。落ちる可能性があるのはその前の
p = alloc_task_struct();
if (!p)
goto fork_out;
p = alloc_task_struct();
if (!p)
goto fork_out;
ちょっと補足すると。俺の環境ではRLIMIT_NPROCがちゃんと働いてメモリを
使い切らない程度にしかプロセスは立ち上がらない。この時にはすでに
立ち上がってるデーモンや、カーネル/カーネルモードドライバにはなにも
影響がなくおかしな挙動もない。
もし、RLIMIT_NPROCを非常に大きな値に設定した場合はforkが落ちるのは
メモリ確保失敗だから他のメモリ確保も失敗する。そうなったら挙動は
当然おかしくなる。
使い切らない程度にしかプロセスは立ち上がらない。この時にはすでに
立ち上がってるデーモンや、カーネル/カーネルモードドライバにはなにも
影響がなくおかしな挙動もない。
もし、RLIMIT_NPROCを非常に大きな値に設定した場合はforkが落ちるのは
メモリ確保失敗だから他のメモリ確保も失敗する。そうなったら挙動は
当然おかしくなる。
36,37に迷惑がかかるのは嫌なので言っておく。
俺は最近この板に書き込むときにはちゃんと"オリジナルスレの1"を使ってる。
だから 36も37も全く別の人。他の人に噛み付くのは止めてくれ。
俺は最近この板に書き込むときにはちゃんと"オリジナルスレの1"を使ってる。
だから 36も37も全く別の人。他の人に噛み付くのは止めてくれ。
Linux板にはカーネルデバッグを嫌う奴がいるみたいだな。
人それぞれだから、それはそれで良いとしても、
オープンソースを掲げるLinuxの板がこれではなぁ...
人それぞれだから、それはそれで良いとしても、
オープンソースを掲げるLinuxの板がこれではなぁ...
>>171
カーネルデバックがダメって主張してるのは一人ぽい。
他の人はオリジナルスレの1がうざいとか、
おもしろい素材だから煽って遊んでるってな感じじゃないの?
前科なくこのスレを建てていたら好意を持って迎えられていたでしょう。
カーネルデバックがダメって主張してるのは一人ぽい。
他の人はオリジナルスレの1がうざいとか、
おもしろい素材だから煽って遊んでるってな感じじゃないの?
前科なくこのスレを建てていたら好意を持って迎えられていたでしょう。
いまちゃんと2.2系のソースを見てみたら、こんな風になってる。
static inline struct task_struct ** find_empty_process(void)
{
struct task_struct **tslot = NULL;
if ((nr_tasks < NR_TASKS - MIN_TASKS_LEFT_FOR_ROOT) || !current->uid)
tslot = get_free_taskslot();
return tslot;
}
MIN_TASKS_LEFT_FOR_ROOTはtasks.hで#define MIN_TASKS_LEFT_FOR_ROOT 4
と定義されてるから、4つのプロセスだけROOTのメンテ用に残されてる。
だから、ちゃんと動くはず。
これでも動かないとなると、搭載物理メモリ量に対して起動できるプロセスが
多すぎるんだね。メモリアロケーションで失敗するよりも、
retval = -EAGAIN;
if (p->user) {
if (atomic_read(&p->user->count) >= p->rlim[RLIMIT_NPROC].rlim_cur)
goto bad_fork_free;
atomic_inc(&p->user->count);
}
こっちのチェックで失敗するようにNR_TASKSを小さな値にして再構築するべきだね。
2.4系ではNR_TASKSは搭載物理メモリ(MB)*64になってる。例えば32MB積んでるなら
32*64で2048個。
でも512個って8MBのメモリのマシン用の設定なんだよね。55がそんな少ないメモリの
マシンを使ってるとは思えないんだよなあ。または既に増やして再構築済みとか?
static inline struct task_struct ** find_empty_process(void)
{
struct task_struct **tslot = NULL;
if ((nr_tasks < NR_TASKS - MIN_TASKS_LEFT_FOR_ROOT) || !current->uid)
tslot = get_free_taskslot();
return tslot;
}
MIN_TASKS_LEFT_FOR_ROOTはtasks.hで#define MIN_TASKS_LEFT_FOR_ROOT 4
と定義されてるから、4つのプロセスだけROOTのメンテ用に残されてる。
だから、ちゃんと動くはず。
これでも動かないとなると、搭載物理メモリ量に対して起動できるプロセスが
多すぎるんだね。メモリアロケーションで失敗するよりも、
retval = -EAGAIN;
if (p->user) {
if (atomic_read(&p->user->count) >= p->rlim[RLIMIT_NPROC].rlim_cur)
goto bad_fork_free;
atomic_inc(&p->user->count);
}
こっちのチェックで失敗するようにNR_TASKSを小さな値にして再構築するべきだね。
2.4系ではNR_TASKSは搭載物理メモリ(MB)*64になってる。例えば32MB積んでるなら
32*64で2048個。
でも512個って8MBのメモリのマシン用の設定なんだよね。55がそんな少ないメモリの
マシンを使ってるとは思えないんだよなあ。または既に増やして再構築済みとか?
自作自演疑惑の煽りとかコピペの煽りじゃなくて、もうちっと技術的な煽りは
出来ないんかい?ちょっと難しい題材提示するとかさあ。
これじゃあ技術的な話に付いてこれないって言うのを認めてるようなもんだぞ。
でもjiffiesの増分を変えるとかいう、ソースサーバーの電源を立ち上げて
3分で分かるような簡単な質問はやめてくれよな。つまんないし勉強にもならない。
あと、全く情報がないのとか不可能な題材も勘弁な。
出来ないんかい?ちょっと難しい題材提示するとかさあ。
これじゃあ技術的な話に付いてこれないって言うのを認めてるようなもんだぞ。
でもjiffiesの増分を変えるとかいう、ソースサーバーの電源を立ち上げて
3分で分かるような簡単な質問はやめてくれよな。つまんないし勉強にもならない。
あと、全く情報がないのとか不可能な題材も勘弁な。
>>オリ1 殿
デバイスドライバ作りにおいて、カーネルスレッドを起こしたとき
rmmodするときはまず先に殺しとかないと文句垂れられるけど
あれってシグナル受け取るか共有メモリ使うかとかする必要が
あってけっこうめんどくさいよね。
かといって手を抜くわけにもいかないし。
なんかいいスケルトンとか、サンプルになるソースってある?
デバイスドライバ作りにおいて、カーネルスレッドを起こしたとき
rmmodするときはまず先に殺しとかないと文句垂れられるけど
あれってシグナル受け取るか共有メモリ使うかとかする必要が
あってけっこうめんどくさいよね。
かといって手を抜くわけにもいかないし。
なんかいいスケルトンとか、サンプルになるソースってある?
>>180
とりあえず、サンプルは探してみる、ちょっとまってな。
なかったら自分でこさえてみるよ。
でもそこまで分かってるんなら、多分それ以外の方法はないし、自分で
出来るんじゃないか?(笑
ところでLinuxってNT/W2KでいうWaitForMultipleObjectsみたいな
関数はないの?これがあれば、カーネルスレッドのWorkItemでの待ちと
終了用のイベントの待ちを同時に行えてエレガントなコードに出来ると
思うんだけど。
とりあえず、サンプルは探してみる、ちょっとまってな。
なかったら自分でこさえてみるよ。
でもそこまで分かってるんなら、多分それ以外の方法はないし、自分で
出来るんじゃないか?(笑
ところでLinuxってNT/W2KでいうWaitForMultipleObjectsみたいな
関数はないの?これがあれば、カーネルスレッドのWorkItemでの待ちと
終了用のイベントの待ちを同時に行えてエレガントなコードに出来ると
思うんだけど。
>>181
一応自分でも作ったんだよね~。
でもジュウザなみに我流なんで、何とかしたいなあと。
今使ってる方法は共通エリアに終了フラグを作っといて、
終わりたいときはcleanupモジュールでそのフラグ立てて
インたら_sleep_onですぐ寝ると。で、カーネルスレッド側で
ループの先頭でそのフラグを見たら適当に終了処理して
cleanupで寝てる人を起こす。
なんか危なっかしい(正常ルートしか考慮してないし)ので
上手い方法ご教示プリーズ
一応自分でも作ったんだよね~。
でもジュウザなみに我流なんで、何とかしたいなあと。
今使ってる方法は共通エリアに終了フラグを作っといて、
終わりたいときはcleanupモジュールでそのフラグ立てて
インたら_sleep_onですぐ寝ると。で、カーネルスレッド側で
ループの先頭でそのフラグを見たら適当に終了処理して
cleanupで寝てる人を起こす。
なんか危なっかしい(正常ルートしか考慮してないし)ので
上手い方法ご教示プリーズ
>>185
ループの最中に必ずスケジューラを呼ぶついでに
そのへんの終了プロセスを一手に引き受けてくれるような
便利な仕組みがあったら欲しいんだよね。
そういう便利ルーチンが用意されてないとなると、自分で
適当に作るしかないってことかな? ・・・なんで用意してないんだろ。
余談だけどRT-Linuxはその辺が標準でサポートされてて、
ブッ殺すって心の中で思ったならッ!
その時スデにプロセスは終わっているんだッ!
って感じで便利だったよ。
ループの最中に必ずスケジューラを呼ぶついでに
そのへんの終了プロセスを一手に引き受けてくれるような
便利な仕組みがあったら欲しいんだよね。
そういう便利ルーチンが用意されてないとなると、自分で
適当に作るしかないってことかな? ・・・なんで用意してないんだろ。
余談だけどRT-Linuxはその辺が標準でサポートされてて、
ブッ殺すって心の中で思ったならッ!
その時スデにプロセスは終わっているんだッ!
って感じで便利だったよ。
>>187
うるせえよ、ヴァカ。
うるせえよ、ヴァカ。
うん。その方が良いと思うぞ。
どっか別な場所に情報上げたら教えてくれ。
粘着も良くかも知れないが 藁
どっか別な場所に情報上げたら教えてくれ。
粘着も良くかも知れないが 藁
自作自演に疲れました。探さないでください。
スレが伸びるのは自作自演と煽りばかり、虚しくなりました。
スレが伸びるのは自作自演と煽りばかり、虚しくなりました。
ヽ ♪刺しちゃうぞォ~~♪ ∩_∩
l 」 ∧_∧ ∩_∩ ∩_∩ ( ´Д⊂ヽイヤー
∥( ゚∀゚ ) ガオー! ( ´Д⊂ヽママー ( ´Д⊂ヽウグゥ⊂ ノ
⊂ つ ⊂ ノ ∩_∩ ⊂ ノ 人 Y
人 Y 人 Y ( ´Д⊂ヽウワアン人 Y し (_)
し(_) .∩_∩し (_) ⊂ ノ し (_) ∩_∩
( ´Д⊂ヽセンセーイ 人 Y ( ´Д⊂ヽヤダー
⊂ ノ し (_) ∩_∩ ⊂ ノ
人 Y ∩_∩ ( ´Д⊂ヽシヌウ 人 Y
し (_) ( ´Д⊂ヽタスケテ⊂ ノ し (_)
⊂ ノ 人 Y
人 Y し (_)
し (_)
========================================
∩_∩ _ ∩_∩ lヽ
(。Д。⊂ `つ ⊂⌒~⊃。Д。)⊃ l 」 ∧_∧
' ' '' ''' '''' ' ' ' ' ,,.,,.,.,..,_ ' '' ' ' '' '' ' ' ∩_∩ _ ∥( ゚∀゚ ) ガオー
⊂l:;:;:;;⊂ ⌒⊃ (。Д。⊂ `つ ⊂ )
'' '' ' ' '' ' '' '' ' ∩_∩ ' ' '' ''' ''' ' ' ' ' ' ' | | |
⊂⌒~⊃。Д。)⊃ (__)_)
∩_∩ '' ' ' ' '' ''' '' ''''
⊂⌒~⊃。Д。)⊃ ,,.,,.,.,..,_
'''' ' '' ' '' ' ' ' '' ∩_∩ _ ⊂l:;:;:;;⊂ ⌒⊃
(。Д。⊂ `つ '' '' ' ' '' ' '' '' '
' ' '' ''' ''' ' ' ' ' ' '
l 」 ∧_∧ ∩_∩ ∩_∩ ( ´Д⊂ヽイヤー
∥( ゚∀゚ ) ガオー! ( ´Д⊂ヽママー ( ´Д⊂ヽウグゥ⊂ ノ
⊂ つ ⊂ ノ ∩_∩ ⊂ ノ 人 Y
人 Y 人 Y ( ´Д⊂ヽウワアン人 Y し (_)
し(_) .∩_∩し (_) ⊂ ノ し (_) ∩_∩
( ´Д⊂ヽセンセーイ 人 Y ( ´Д⊂ヽヤダー
⊂ ノ し (_) ∩_∩ ⊂ ノ
人 Y ∩_∩ ( ´Д⊂ヽシヌウ 人 Y
し (_) ( ´Д⊂ヽタスケテ⊂ ノ し (_)
⊂ ノ 人 Y
人 Y し (_)
し (_)
========================================
∩_∩ _ ∩_∩ lヽ
(。Д。⊂ `つ ⊂⌒~⊃。Д。)⊃ l 」 ∧_∧
' ' '' ''' '''' ' ' ' ' ,,.,,.,.,..,_ ' '' ' ' '' '' ' ' ∩_∩ _ ∥( ゚∀゚ ) ガオー
⊂l:;:;:;;⊂ ⌒⊃ (。Д。⊂ `つ ⊂ )
'' '' ' ' '' ' '' '' ' ∩_∩ ' ' '' ''' ''' ' ' ' ' ' ' | | |
⊂⌒~⊃。Д。)⊃ (__)_)
∩_∩ '' ' ' ' '' ''' '' ''''
⊂⌒~⊃。Д。)⊃ ,,.,,.,.,..,_
'''' ' '' ' '' ' ' ' '' ∩_∩ _ ⊂l:;:;:;;⊂ ⌒⊃
(。Д。⊂ `つ '' '' ' ' '' ' '' '' '
' ' '' ''' ''' ' ' ' ' ' '
おいおい、とんでもないオナニースレだな。
自分で気持ち悪い粘着ぶり晒しといて
「粘着がいるから」ハァ?
イタ過ぎて笑うしかないねこりゃ。
じゃ、ここを代表して最後に
>スレが伸びるのは自作自演と煽りばかり
オマエノナー
自分で気持ち悪い粘着ぶり晒しといて
「粘着がいるから」ハァ?
イタ過ぎて笑うしかないねこりゃ。
じゃ、ここを代表して最後に
>スレが伸びるのは自作自演と煽りばかり
オマエノナー
みんなの評価 :
類似してるかもしれないスレッド
- あなたのカーネルパッチを教えろやゴルァ! (300) - [30%] - 2009/12/12 11:32
- 【Linux】カーネル総合7【Kernel】 (247) - [25%] - 2022/12/17 20:30
- 【Linux】カーネル総合6【Kernel】 (980) - [25%] - 2015/4/13 16:30
トップメニューへ / →のくす牧場書庫について