SGI KDBを使ったカーネルデバッグスレ
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0027名無しさん@お腹いっぱい。
NGNG2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
0028名無しさん@お腹いっぱい。
NGNG誰も求めていません。てゆうかウザイだけです。
大体そんなマニア的過ぎる偏った知識なんて、実際の仕事じゃ
何の役にも立たないっての。それこそ、そんだけ詳しいんだっ
たら、UNIXカーネルの作り方のコツとか教えてくれた方がよほど
まともだぜ。
0029名無しさん@お腹いっぱい。
NGNGオレはこのスレッドは保存してるよ
便利だし(すっげー読みにくいけど)
0030名無しさん@お腹いっぱい。
NGNGなんか、又もやミーの親分がこんなスレを勃てて…いや、立ててしまって
1のちんこをやってるミーとしても、恥ずかしいザマス。
ミーも恥ずかしくて顔見せできないザンスよ。ま、ミーは真性包茎ちんこなので
顔見せしたくてもできないザンスが…
思えば1もかわいそうな奴で、小学生の時にクラスのマドンナ的存在の
縦笛を舐めてる所を目撃されてからというもの、すっかりいぢめられっこに
成り下がって…(涙)これなら、クラスの誰からも相手にされない奴だった
昔のほうがまだマシだったザマスよ。
あ、そうそう。最近1は、包茎手術をしようと目論んでるザンス。
彼女がいないどころか、レイディと口さえきいた事もないのになぜ
包茎を治したがるのか…今回のクソスレの件といい、1の考えてる事は
ミーにもさっぱり解からないザマス。
いずれミーもカワイコチャンのまんこにズボッと入りたいザマスが、
それも叶わぬ夢なんザンしょうねぇ…もうPCディスプレイに表示されてる
美少女アニメキャラに向かって射精する毎日はこりごりザンス。
0031名無しさん@お腹いっぱい。
NGNGおれアニオタじゃないのだが、「ちょっとなら」そういうネタを
入れてもいいと思う。それが一種彼らの楽しみでもあるわけだしさ。
逆にアニメじゃなくても、趣味の押しつけがましい
ドキュメントやサンプルがあったら引くわな。
何事も程度の問題ってことで。
0032名無しさん@お腹いっぱい。
NGNGあれ?
嵐君はこのスレと何か関係あるの?
墓穴掘ってるよ。
0033名無しさん@お腹いっぱい。
NGNG003418,22
NGNGぶー、やっぱりハズレ。
0035オリジナルスレの1
NGNGカーネルの再構築の仕方なんて検索すれば腐るほどでてくるじゃん。
それにあれただ単にmakefileを決まった引数つけて実行させてるだけでしょ。
あんなの誰でも出来るぞ。コツも何もあったもんじゃない。
うまくいかなかったらmakefileを読みなさい。
他のページに書かれてないことを書くほうがよっぽど有用だろ。君が有用で
ないと思うのはこういうデバッグを必要とするような事をしてないからだよ。
実際ドライバを書いたりすればカーネルデバッガが非常に有用なのが分かるよ。
Winのこととは関係ないことかいてるのになんで煽るのかな。君、個人的に
なんか俺に恨みあるの?前スレで突っかかってきた奴がまだ粘着してるわけじゃ
ないよな。
0036名無しさん@お腹いっぱい。
NGNG前スレでセルフでカーネルデバッグの質問した人です。
あんときはどうも。
自力で解決できたんであの方法まだ使ってないけど
そのうち使わせてもらいます。
敵が多いけど頑張ってね。
0037名無しさん@お腹いっぱい。
NGNG暇があったらオリジナルの方にもまた有用なカキコお・ね・が・い♪
0038login:Penguin
NGNG誰も再構築の話なんて訊いていませんけど?
てゆうか、なんでカーネルの作り方=カーネルの再構築に
なるんだよ? 凄い脳内変換だねえ、やっぱお前バカだわ。
大体他のページで書かれていない事で有用なのがカーネルの
デバッグなわけ? 有用なのはお前のオタク趣味にとってだろ。
しかもカーネルのデバッグが仕事で有用? そんなのお前の
仕事だけだよ。普通のエンジニアやプログラマーはそんな
面倒なことはしないで、もっと別の解決方法を考えるに決ま
ってんだろ。
0039親切な人
NGNGあなたの意見はとても偏見に満ちています。
それは、カーネルにはまだまだバグが多く潜んでいることを
知らないということが原因です。
また、デバイスドライバの開発は、すなわち、カーネルの開発です。
デバイスドライバのデバッグは、すなわち、カーネルのデバッグです。
0040login:Penguin
NGNGそんなことくらいは知っている。
ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
自分の仕事にしている人はかなり限られる。少なくともエンジニアや
プログラマーの大多数を占める、システムの構築や運用・管理、モジ
ュールの設計・コーディングをやっている人間がこんなことに手を出す
とはとても思えん。
>デバイスドライバの開発は、すなわち、カーネルの開発
>デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
そんなわけねえだろ(w
0042名無しさん@お腹いっぱい。
NGNG> ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
> 自分の仕事にしている人はかなり限られる。少なくともエンジニアや
> プログラマーの大多数を占める、システムの構築や運用・管理、モジ
> ュールの設計・コーディングをやっている人間がこんなことに手を出す
> とはとても思えん。
仕事と決めつけるのはなぜ?趣味でやる人は依然多いと思うけど?
少なくとも、デスクトップのテーマがどうとか、最強のウインドウマネージャとか
いう話題よりもはるかに有益だと思うけど。
> >デバイスドライバの開発は、すなわち、カーネルの開発
> >デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
>
> そんなわけねえだろ(w
そんなわけあるよ。
0044login:Penguin
NGNG何なんだこのLin厨の世間知らず振りは。
0045login:Penguin
NGNG>仕事と決めつけるのはなぜ?
別に決めつけてねえよ、よく読め。
>趣味でやる人は依然多いと思うけど?
だからそんなヲタクの為のオナニースレはLinux板にいらねえって
言ってんだよ。やたら詳しいけど、同時にものすごく偏っていて、
実務的でもなければ学術的でもない知識をひけらかす。そもそも
ソフトにバグがあるのは当たり前。そのうち致命的な物については
発見されたらその都度パッチを貼り、そうでないものについては
だましだまし使うのがまともなユーザー。それをまるで完璧なもの
を求めるかのようにネチネチとイジるなんて、やってることが極めて
非生産的&病的。それこそセキュリティの弱いサーバーをクラック
して遊ぶ外道と大して変わらねえよ。
0046login:Penguin
NGNG申し訳ないけど、このスレの情報が役に立っている人もいるんだ。
スレを汚さないでほしいんだが・・・
あと、パッチを貼ったりしているなら、そのパッチを作った人達にも
ほんの少しでもいいから敬意を払ってはくれまいか? たのむよ・・・
0047login:Penguin
NGNG他にすることがあることくらい知ってるでしょう。
ヴァカはほっとくのが吉。
0048login:Penguin
NGNGこれがLinuxユーザーの認識なのか?
信じたくはないが…
0049login:Penguin
NGNG>>45は際立ってバカだけど、でも大抵のビジネスユーザは、
「会社に指示されて」使うわけだからあんなものかも。
知的好奇心や向上心を持たない技術者なんて珍しくもない。
0050login:Penguin
NGNGこりゃまたとんでもない勘違いだね。
0051login:Penguin
NGNGなんでそんなにテクニカルな話が嫌いなの?
0053オリジナルスレの1
NGNG>>それをまるで完璧なものを求めるかのようにネチネチとイジるなんて、
>>やってることが極めて非生産的&病的。
おいおい自分たち自身を否定してどうする。エンジニアリングをやる以上
完璧を追い求めるのは当然だろ。それを出来ないようならエンジニア
止めなさい。
ネチネチといじれるのがLinuxのいい所だろ。せっかくソースがあるんだから
使えよ。君みたいなのがソースがあるのがLinuxのいい所だなんて
言うのはまことおこがましいな。
0054オリジナルスレの1
NGNGこの方はテクニカルな話が嫌いなわけじゃないの。俺を個人的に
嫌ってるだけ。
>>50
あのさあ、最初のほうでもレスしたけど、Winと関係ないこと
書いてるのに煽るの止めてよ。煽るにしたってもうちょっと
理論武装しないと同意なんて得られないよ。
このスレに関しては静観しているのが君のためだと思うんだが
どうよ?
それよりもカーネルデバッグの題材なんかない?「2.4で動かなく
なったんだけどどうして?」とか「メモリマネージャを追ってみて」
とかとりあえず何でもいいんだが。
0055login:Penguin
NGNGオッケーになったとか何とかいってるが、
main(){while(fork());}
でテーブルをいっぱいに出来てしまうのはかわらない。
しかもこれ、一般ユーザでシステムダウン可能なんだよ。
これをなんとかしてほしい。
rootでのメンテ用にプロセステーブルを少しだけあけておくことができれば
killできるんだけど・・・
0056login:Penguin
NGNGあれ?
嵐君はこのスレと何か関係あるの?
墓穴掘ってるよ。
0057login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0059login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0060login:Penguin
NGNGおおコピペ犬だ。
0061login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0062login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0063login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0064login:Penguin
NGNG0065login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0066login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
006755
NGNGしょうがないので再掲。 前スレ1 さん、たのむわ。
できれば2.2、2.4両方でいい方法教えてほしいの
------
main(){while(fork());}
でテーブルをいっぱいに出来てしまうのはかわらない。
しかもこれ、一般ユーザでシステムダウン可能なんだよ。
これをなんとかしてほしい。
rootでのメンテ用にプロセステーブルを少しだけあけておくことができれば
killできるんだけど・・・
------
0068login:Penguin
NGNG我の邪魔をするでない。
0069login:Penguin
NGNGすまぬ。我の犬がそそうをしでかしたようじゃ。
ゆるしてたもれ。
0070login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0071login:Penguin
NGNG0072login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0073login:Penguin
NGNGうむ。我が犬よ、そのとちくるったコピペ犬を捕まえてきてくれ。
そそうをしでかした犬は縛り首にいたさねばなるまい。
0074login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0075login:Penguin
NGNGユーザーの有益な情報交換を邪魔する事は出来ても、
もう誰の目で見てもWindowsユーザーはLinuxユーザー以下だって
事を証明しているだけなんだぞ?ここだって見方によっては良スレなのに・・・
0076login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0077名無しさん@お腹いっぱい。
NGNG> >>42
> >仕事と決めつけるのはなぜ?
> 別に決めつけてねえよ、よく読め。
よく読んでいいのか?(w
じゃあしっかり読んでやろうじゃないの。逃げるなよな。
> >趣味でやる人は依然多いと思うけど?
>
> だからそんなヲタクの為のオナニースレはLinux板にいらねえって
> 言ってんだよ。やたら詳しいけど、同時にものすごく偏っていて、
> 実務的でもなければ学術的でもない知識をひけらかす。そもそも
自分が興味無いなら読むなよ。
自分が興味無いから書くなってのはおかしいだろうが。
つくる人や、修正する人がいるから Linux や その他 FreeWare は
成り立ってるんだろうが。
> ソフトにバグがあるのは当たり前。そのうち致命的な物については
> 発見されたらその都度パッチを貼り、そうでないものについては
> だましだまし使うのがまともなユーザー。それをまるで完璧なもの
お前はバグを作者に報告したり、修正パッチを送ったりしたことは無いのか?
作者は公開して、ユーザーからフィードバックを元にパッチを作るんだろうが。
Kernel に限らず、いろいろな FreeWare の Changelog に
作者以外の名前があるだろが。
で、作者が "Thanks!" とか書いてるだろが。
> を求めるかのようにネチネチとイジるなんて、やってることが極めて
> 非生産的&病的。それこそセキュリティの弱いサーバーをクラック
> して遊ぶ外道と大して変わらねえよ。
ネチネチソースいじってバグ直してる人のおかげだって事をちょっとは考えろよ。
バグ直す事が非生産的?病的?外道と同じ?
もう一度聞くがよく読んでいいのか?
0078login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0079login:Penguin
NGNG2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
0080login:Penguin
NGNGあれ?
嵐君はこのスレと何か関係あるの?
墓穴掘ってるよ。
0081login:Penguin
NGNG我が犬達よ、犬スレに出頭するがよい。
0082login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0083login:Penguin
NGNGLinuxを批判されたからといって、ほかの板に迷惑かけるのは
止めろよな。他のLinux板の住人がかわいそうだ。
俺は基本的に場違いだから、sageで書いてるだけだ。
0084login:Penguin
NGNG>>191
その点でSSH1が脆弱なのは知ってます。
でも、SSH2においてもDSA認証を使った場合でしかMITM攻撃を発見できませんし、
そのためにはサーバ側にユーザの公開鍵が登録されている必要があります。
(当然、ユーザの秘密鍵が洩れていたり、偽物のユーザ鍵をサーバに登録されて
しまった場合もアウト。パスワード認証なんて論外。)
結局、安全な接続を行うには、あらかじめ何らかの確実な方法でサーバの公開鍵を
クライアント側に、ユーザの公開鍵をサーバ側に登録しておき、
それら公開鍵・秘密鍵を厳重に管理しなければなりません。
でも、それができるのなら、SSH1だって十分安全だということができます。
SSH2なら上の前提が破られても通信を完全に乗っ取るのは困難(不可能ではない)だ
という意味で、「SSH2はSSH1より安全」と私は言ってるわけです。
0085login:Penguin
NGNG| |
| |
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!クソレスがついてます!
/ / \ やはりちゃんころですか!?鬱だ、sageます!
/ /| / \_____________
__| | .| |
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0086login:Penguin
NGNGあれ?
嵐君はこのスレと何か関係あるの?
墓穴掘ってるよ。
0087login:Penguin
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0088login:Penguin
NGNG全然分かんなくなってきたな>荒し
1は、最初のWin2kトラブルシュートスレがアホ丸出しだったから、
イメージが悪いんだよな。それと、他スレにまで
「オリジナルスレの1」なんてハンドル付けてスレ汚してくれるな。
1が来ると必ず不毛な煽り合いになるしな。
必要以上に突っかかるのは止めて欲しい。
イタイユーザーなんてLinuxにでもWinにでもいるんだから。
(居ないとは言わせない。すぐそこらにいるからな。)
そのおかげで関係無いユーザーにまで迷惑かけてるのは事実。
荒しと言われてもしょうがない。
その他、このスレでの話は有益だし、
他のスレでも節度を持ってWinのお話をしてもらいたい。
これはLinux板の1住人としてのお願いなんだけど。
0089login:Penguin
NGNGただの暇な人だと思うよ。
・・というか、これもコピペか? コピペニマジレス、カコワルイ?
0090login:Penguin
NGNG余も全くもってその通りと思う。Linuxは闘争の為に作られた物ではない。
余がWindowsの話をした途端にWin厨房と爆撃を貰うのは全く持って憤慨極まるものである。
我が犬達よ。おとなしくするがよい。
0091名無しさん@お腹いっぱい。
NGNGこのスレの1の特徴は
・粘着
・下手くそな自作自演
・Win2Kは安定しているという信条
・M$への絶大な信頼
・Winのデバッグやドライバに関する知識
・書き込み日時からしてヒッキーか学生
いろんなスレでWin擁護をしてバッシングされたり無視されたり
した奴だ。
でこいつが今度はUnix板で
「UNIX版に立てるUNIXトラブルシュートスレッド」
を立ててわざとらしく8で登場している。
スレを立てたのが05/26(土) 22:25から8の発言の2001/05/27(日) 06:06
Linux版に立てるWin2Kトラブルシュートスレッド
http://cocoa.2ch.net/test/read.cgi?bbs=linux&key=989048022
SGI KDBを使ったカーネルデバッグスレ
http://cocoa.2ch.net/test/read.cgi?bbs=linux&key=989748178
0092名無しさん@お腹いっぱい。
NGNGLinux厨房が一杯釣れました
2 名前:名無しさん@お腹いっぱい。 投稿日:2001/05/27(日) 23:08
もっと魅力的なスレを考えろ。
3 名前:名無しさん@お腹いっぱい。 投稿日:2001/05/28(月) 00:16
釣られage
4 名前:hanajan_特科連X 投稿日:2001/05/28(月) 00:25
今日から仕事です
5 名前:名無しさん@お腹いっぱい。 投稿日:2001/05/28(月) 00:29
そういえば昨日、今日と一人で荒しまくって
誰にもまともに相手して貰えてないのに、
釣れた釣れた、と言ってる可哀想なWin厨房が
いた気がするんだけど、気のせい?
0093名無しさん@お腹いっぱい。
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0094login:Penguin
NGNG0095名無しさん@お腹いっぱい。
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0096名無しさん@お腹いっぱい。
NGNGこのカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
0097login:Penguin
NGNG誰か解説きぼーん。
------
main(){while(fork());}
でテーブルをいっぱいに出来てしまうのはかわらない。
しかもこれ、一般ユーザでシステムダウン可能なんだよ。
これをなんとかしてほしい。
rootでのメンテ用にプロセステーブルを少しだけあけておくことができれば
killできるんだけど・・・
------
009855
NGNGだからシステムがおかしくなるよーってゆったじゃーん
解説しよう!(タイムボカンシリーズ風に)
fork() でプロセス生成します。
戻り値は子プロセス側は0、羽美の親プロセスの方はプロセスIDが
帰ってきます。
で、子プロセス側はwhileを抜けて終了するんだけど
親の死に目を見るまでは我慢するのでゾンビになります。
親は親でwhileを抜けないので子供を大量生産。
このときプロセスを生成してるからカーネルはプロセステーブルに
プロセス番号をメモっていきます。
で、そのテーブルは大きさが決まってるので(2.2.xなら1000くらい)
1000回くらいループしたらもう書く場所無いのでギブアップ。
(でもfork()は-1だかのエラーを返すので無限ループは続く)
プロセステーブルがいっぱいになるとプロセスが作れないので
lsもうてないしpsもうてない。当然killなんてもってのほか!
0099オリジナルスレの1
NGNGOSとして例外処理を認めずどうにもならない状態まで突っ走るか、
なんらかの例外処置を設けて抜け道を作っておくか。
まあ、うまい制限を設けられるか見てみましょ。
0100名無しさん@お腹いっぱい。
NGNG.'⌒⌒丶
_ ′从 从)_ もう寝る
| __ヽゝ・_・ν |
|\ ⌒⌒⌒⌒⌒\
| \ \
\ |⌒⌒⌒⌒⌒|
\ |_____|
0101login:Penguin
NGNGユーザが生成できるプロセスMAX数が設定できないの?
MagicKeyでも殺せないの?
0102オリジナルスレの1
NGNGソースを見てみてデバッグしてみた。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になっている。
0103オリジナルスレの1
NGNGまず main(){while(fork());} をコンパイルし実行する。
pauseキーでブレイクインし、do_forkにブレイクポイントを張る。
[1]kdb> bp do_fork
Instruction(i) BP #0 at 0xc0115270 (do_fork)
is enabled globally adjust 1
gで、再実行。先ほど実行したプログラムでforkが実行されまくってる
からねすかさず止まるはず。
Instruction(i) breakpoint #0 at 0xc0115270 (adjusted)
0xc0115270 do_forkint3
Entering kdb (current=0xc5f82000, pid 15240) on processor 1
due to Breakpoint @0xc0115270
止まったら
if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur)
の行までトレースする。ソースをみるとこの条件判断はalloc_task_structの
次の次の条件判断であることが分かる。この辺りのコードでアロケートしてるのは
0xc01152ee do_fork+0x7ecall 0xc012fbe0 __get_free_pages
0xc01152f3 do_fork+0x83mov %eax,%ebx
0xc01152f5 do_fork+0x85test %ebx,%ebx
0xc01152f7 do_fork+0x87je 0xc01158d8 do_fork+0x668
のコードだ。test %ebx,%ebx jeはif (!p) gotoであることは容易に分かる
このコードの次の条件判断は
0xc0115314 do_fork+0xa4mov 0x4(%edx),%eax
0xc0115317 do_fork+0xa7cmp 0x300(%ebx),%eax
0xc011531d do_fork+0xadjae 0xc011596b do_fork+0x6fb
だから、ここまでトレース。トレースはssコマンドだ。
0104オリジナルスレの1
NGNG設定し実行した。
[0]kdb> bp 0xc0115317
Instruction(i) BP #1 at 0xc0115317 (do_fork+0xa7)
is enabled globally adjust 1
[1]kdb> g
Instruction(i) breakpoint #1 at 0xc0115317 (adjusted)
0xc0115317 do_fork+0xa7int3
Entering kdb (current=0xc5f82000, pid 15240) on processor 1
due to Breakpoint @0xc0115317
次に実行されるインストラクションはこれ。
0xc0115317 do_fork+0xa7cmp 0x300(%ebx),%eax
レジスタの内容を見てみよう。eaxが&p->user->processesのはず。
[1]kdb> rd
eax = 0x00001000 ebx = 0xc2bd0000 ecx = 0x00000000 edx = 0xc6d0dfc0
esi = 0xc5f82680 edi = 0xc2bd0680 esp = 0xc5f83f50 eip = 0xc0115317
ebp = 0xc5f83fa4 xss = 0x00000018 xcs = 0x00000010 eflags = 0x00000286
xds = 0xc5f80018 xes = 0x00000018 origeax = 0xffffffff ®s = 0xc5f83f1c
eaxは0x1000つまり4096だな。0x300(%ebx)も見てみよう。メモリダンプはmdだ。
[0]kdb> md %ebx+0x300
0xc5aaa300 00001000 00001000 00000400 00000400 ................
p->rlim[RLIMIT_NPROC].rlim_curも0x1000,4096であることがわかる。
つまりこのマシンでは1ユーザーコンテキスト上では4096個以上のプロセスは
立ち上げられないことになる。実際にpsコマンドでみても4096以上は
立ち上がっていない。
0105オリジナルスレの1
NGNG2.2.19にも
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);
}
ちゅうコードがあるからちゃんと動くはずだけどなあ。
0106login:Penguin
NGNG| |
| |
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!クソレスがついてます!
/ / \ やはりちゃんころですか!?鬱だ、sageます!
/ /| / \_____________
__| | .| |
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0107login:Penguin
NGNG_ ′从 从)_ もう寝る
| __ヽゝ・_・ν |
|\ ⌒⌒⌒⌒⌒\
| \ \
\ |⌒⌒⌒⌒⌒|
\ |_____|
0108login:Penguin
NGNGところで、その
1ユーザが生成できるプロセスの上限
はどこで設定できるの?
0109オリジナルスレの1
NGNG一般ユーザーは設定できない。一般ユーザの最大プロセス数を変更したい場合は
2.2系では最大値はtask.hで
#define MAX_TASKS_PER_USER (NR_TASKS/2)
と定義されてるからここを適当にかえて再構築。
2.4系では>>102で書いたようにfork_initの中で物理メモリの搭載量をもとに
max_threadsが計算され、その半分に設定されている。
変更したい場合は物理メモリの搭載量をかえましょう。
どうしてもメモリをそのままでプロセス数だけ変更したい場合はfork.cのfork_initの
init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
のmax_threads/2を適当な値に変えて再構築しましょう。
0110login:Penguin
NGNG減らす方向にはユーザレベルで可能なはずだが、
現在手元にソースが無いので確認できず
0112login:Penguin
NGNGちょっといい?
0113login:Penguin
NGNGオリ1が一人突っ走っていたが、キミのおかげで
会話が成り立つようになって、良スレ化してきた。
0114login:Penguin
NGNG0115オリジナルスレの53
NGNGやんわりと同意。
このスレはLinuxのことやってるんだから、興味ない人や
他のスレの発言から1が嫌いな人は放っておけばいい。
恥ずかしい論理でLinux厨房ぶりを晒さないことだ。
確かに1は>>35-37みたいな恥ずかしい自作自演をする輩ではある。
だいたい>>36は前スレの190だろ。
http://cocoa.2ch.net/test/read.cgi?bbs=linux&key=989048022&st=190&to=191&nofirst=true
文体が変わってるし急に馴れ馴れしくなってるよ。キャラは一貫性を持たせろ。
>たまにリロードして窺ってました。
>5時間くらい人がこなかったので誰もいなくなったのかと思ってました。
俺は前スレの190=1のこの粘着ぶりをみて気持ち悪くなり
手を引いた。確かにおもちゃにするにはおもしろい相手だけどな。
だからあまり刺激するな。
1は反論するやつはみんな俺に見えてるみたいだが、そんなに君を
傷つけて心に深い傷を負わしてしまったかな。
ごめんな、がんばれよ。
まあ2chの掃き溜めで1もいろんな意味で英雄になったな。嬉しいぞ。
0116login:Penguin
NGNGやめろって。。。また。。
011755
NGNG盛り上がってるとこ悪いけど、おれは前スレの190で、このスレの36だけど
ここでも前スレでも 1じゃないよ。
0118login:Penguin
NGNG言うだけなら1でも出来るな。
0119login:Penguin
NGNGつうか午前4時にあの間隔のカキコはなあ。
0121login:Penguin
NGNG36の次が37か…。
なんか、ますます胡散臭くなってきたなあ(w
0122login:Penguin
NGNGそんでまた偶然36、37が出てくる。
君たちはデムパで繋がってるの?
0123login:Penguin
NGNG決めつけるのは良くないが、かなり不自然であるとだけ。
012455
NGNG0125login:Penguin
NGNGおいおいおいおいおいおいおいおいおい
ちょっと面白いな(w
0126login:Penguin
NGNG自分でネタフリして自分で答えるのはスレを盛り上げるために
使われる手段ではあるので、別に批判はしない。
012737
NGNG>使われる手段ではあるので、別に批判はしない。
まあ、つまらん煽りや正体探しより遙かに有益だわな
■ このスレッドは過去ログ倉庫に格納されています