[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 14:46 / Filesize : 123 KB / Number-of Response : 569
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Linux】カーネル総合3【Kernel】



1 名前:login:Penguin [2006/04/28(金) 23:52:43 ID:OSZilmdD]
前スレ
pc8.2ch.net/test/read.cgi/linux/1100967722/

435 名前:login:Penguin mailto:sage [2007/03/26(月) 11:06:30 ID:tZL/Nb/x]
ntfs-3gで今のところ書き込み失敗等の経験なし。

436 名前:login:Penguin mailto:sage [2007/03/27(火) 18:22:22 ID:n8fdUEW9]
3月版 Greg K-H、デバイスドライバ無料開発宣言!?
www.atmarkit.co.jp/flinux/rensai/watch2007/watch03a.html
ノートPCや組み込み機器に有効な新機能とは?
非同期システムコール機構の登場!
ネットワークデバイスの変更をログに残すべきか?
デバイスドライバのライセンスはGPLで
ノートPCのサスペンドで悩む日々
活発な-stableリリース! しかし、ミスも……


>>433-434
時代はどんどん先へ進んでるんだぜ

437 名前:login:Penguin mailto:sage [2007/03/27(火) 18:25:26 ID:vD1CCZ/0]
>>436
それ以前に、リンク先が1月以上も前のできごとなのだが。

438 名前:login:Penguin mailto:sage [2007/03/27(火) 18:39:30 ID:ULu4nmt5]
最近Linux Kernel Watchも遅れた情報が多いな。
時代がどんどん先へ進んでるせいだろうけど。
変更大杉

439 名前:login:Penguin mailto:sage [2007/03/27(火) 18:40:18 ID:ULu4nmt5]
まぁ面白いからそれでもいいんだけど
上川さん愛してる

440 名前:login:Penguin mailto:sage [2007/03/27(火) 21:03:43 ID:l+fl6gcB]
>>436 非同期システムコール機構の登場!

やっとVMSなみになるのか。


441 名前:login:Penguin mailto:sage [2007/03/28(水) 01:04:57 ID:9PkgXo4l]
>>440
非同期システムコールの完了通知ってどうやって受け取るんすか?
VMSではどうやっていたんだっけ。
コールバックルーチンを定義したのだっけかな。

442 名前:440 mailto:sage [2007/03/28(水) 09:59:11 ID:Ipgoo+W8]
>>441
3通り。
1. イベント・フラグがセットされる ($WAITEFとかで待つ)
2. I/O status blockの完了ステータスがセットされる
(あんまり使った覚えないな。ポーリングするのかな?)
3. AST(Asynchronous System TRAP)が呼ばれる。


443 名前:login:Penguin mailto:sage [2007/03/28(水) 14:48:37 ID:0XsmV5+J]
>>442
ASTっていうと別のものが頭に浮かぶな。




444 名前:login:Penguin mailto:sage [2007/03/28(水) 21:38:44 ID:Z/yhoLzB]
PowerPremiumでつか

445 名前:login:Penguin mailto:sage [2007/03/31(土) 08:02:38 ID:Ud+o/4Fl]
>>442
selectとかで待てたらいいね


446 名前:KD125053235206.ppp-bb.dion.ne.jp mailto:sage [2007/03/31(土) 18:42:18 ID:WWmuos7R]
>>445
callback(...) {
longjmp(buf, 1);
}
...
somefunc(...) {
...
if (setjmp(buf) == 0)
invoke_async_call(callback);
...非同期メソッドが返った後に実行する部分...
}

とするとソース上はシーケンシャルに処理を書ける・・・かも?(ライブラリ次第)


447 名前:login:Penguin mailto:sage [2007/03/31(土) 23:43:49 ID:b+RKwOAT]
AST

OS屋さん:アンドリュー・S・タネンバウム
コンパイラ屋さん:抽象構文木

448 名前:login:Penguin mailto:sage [2007/04/01(日) 00:48:37 ID:RSz/61gk]
>>447
Linux(Linus)的にはタネンバウム先生との喧嘩だろう。


449 名前:login:Penguin mailto:sage [2007/04/04(水) 11:18:42 ID:Swx7TNMy]
missing madvise functionality
ttp://www.ussg.iu.edu/hypermail/linux/kernel/0704.0/0871.html

450 名前:login:Penguin mailto:sage [2007/04/04(水) 15:44:02 ID:r9r6BNwC]
システムコールをフックした先でファイル操作ってどうにかしてできないもんですかね。

具体的には特定状況下でディスク上にログを書き出したいんですけど。
カーネル空間内でsys_open呼び出しても意味ないですし困っております。
何かいい方法がある方ご教授ください。

451 名前:login:Penguin mailto:sage [2007/04/04(水) 16:12:32 ID:oCfr9/aE]
>>450
ふつうにprintk → klogd → syslogdじゃダメなんですか?
ど〜しても自力でファイル開きたければ、filp_openするとか。


452 名前:450 mailto:sage [2007/04/05(木) 00:35:50 ID:fcY4jQfS]
>>451
出来ればそのログだけ単独で書き出したいんです。
filp_openですか。ファイル構造体取得できればどうにかなりそうですね。
書き込みモードで取得できるかが肝ですが、頑張ってみます。

453 名前:login:Penguin mailto:sage [2007/04/05(木) 01:14:13 ID:ZtAHtWOp]
netlink か何かで専用のプロセスに投げる。

簡単かどうかは知らないけど。




454 名前:login:Penguin mailto:sage [2007/04/05(木) 01:16:12 ID:zWsTWLeW]
”システムコールをフック”ってそのうち出来なくなるような気がするけど...

455 名前:KD125053235206.ppp-bb.dion.ne.jp mailto:sage [2007/04/05(木) 23:50:22 ID:/J84+CVZ]
テーブル書き換えはもう出来なくなってたような気がするけど、
Kprobesとかでフックしてるんでは?

456 名前:login:Penguin [2007/04/14(土) 09:50:47 ID:Kd8gEwli]
カーネル=OSですか?
階層構造では、↓のようになると思うんですが、
OSとカーネルの違いがわかりません。
どう違うのでしょうか?

**************************************
アプリケーション
**************************************
ミドルウェア
**************************************
OS
**************************************
カーネル
**************************************
デバイスドライバ
**************************************
ハードウェア
**************************************

↓では、カーネルとは、カーネル型リアルタイムOS、汎用型OSというように
 OSの種類というだけのようです。
itpro.nikkeibp.co.jp/members/NBY/techsquare/20050804/165882/?ST=ittrend


457 名前:login:Penguin mailto:sage [2007/04/14(土) 10:01:53 ID:hRvEgtMX]
>>456
くだらねえ質問はここに書き込め! Part 144
pc11.2ch.net/test/read.cgi/linux/1176210827/

458 名前:login:Penguin mailto:sage [2007/04/14(土) 11:20:36 ID:rDs8AFmH]
今1秒間に600MB/secでディスクに書き込みやってるんだけど
writeするとメモリの使用量がはんぱなく増えていくんだけど解決策ないですか?

メモリの総容量           32GB
OSその他諸々の使用容量    300MBぐらい
最初のメモリの空き 31.7Gぐらい

そんでwriteしてると10秒毎にメモリが60MBぐらいずつ増えていって、pdflush間に合ってないし
freeがどんどん減っていって30分もしないで30GBぐらい使い果たしてmallocすら取れなくなります。Windowsで同じ事しても全然平気なんだけどなんでLinuxってこんな簡単な事もできないの?



459 名前:login:Penguin mailto:sage [2007/04/14(土) 11:25:01 ID:l7QQz02I]
笑っておままごとの人はすぐ、泣きがはいるの?

460 名前:login:Penguin mailto:sage [2007/04/14(土) 11:32:13 ID:WFdI+M26]
>>458
Direct I/O
raw device

大規模なシステムのようだが、素人が作ってて大丈夫なのか・・・?

461 名前:login:Penguin mailto:sage [2007/04/14(土) 11:38:35 ID:FYHC+rjs]
>>458
mallocすら取れなくなるってのは異常だから、なんとかした方がいいな。
バグレポートした方がいいと思う。

ってかこういう時用のチューニングって何かないっけ?
思い当たらんのだけど

462 名前:KD125053235206.ppp-bb.dion.ne.jp mailto:sage [2007/04/14(土) 11:53:39 ID:nAecf1s7]
>>460
誰にでも初めてはあるから当人的にはいいんじゃね?
もっとも自社内に解決できる人員がいないその会社は心配だが。

463 名前:login:Penguin mailto:sage [2007/04/14(土) 12:12:00 ID:rDs8AFmH]
>>460
直接メールでLinusにraw deviceは推奨しないし使うのは馬鹿げているって言われたから使わない方がいいと思うのですがどうなんでしょうか?

後、open時にO_DIRECと入れて書き込むのは512の倍数に揃えて書き込まないといけないようです。そのため端数出たときに極端に処理速度が落ちてボトルネックになる場合があって困ってます。

O_DIRECTを使った効率的なサンプルなんかはあるのでしょうか?




464 名前:login:Penguin mailto:sage [2007/04/14(土) 12:20:47 ID:1g/elZBn]
ちょwwwww

465 名前:login:Penguin mailto:sage [2007/04/14(土) 12:27:53 ID:NL9NunrN]
ベラボーなファイル書き込み速度だけど、いったい何に使うんだか気になる。
商用のDB製品じゃないよなあ。
ハイビジョンの映像をリアルタイムに非圧縮で流し込んでもそこまで行かないよなあ。
なんだろ。

466 名前:login:Penguin mailto:sage [2007/04/14(土) 12:32:05 ID:xmp7f+Mm]
>直接メールでLinusに...どうなんでしょうか?
すげーな。

467 名前:login:Penguin mailto:sage [2007/04/14(土) 12:32:33 ID:BiYQHwK9]
て言うかそらHDDへの書き込みなんて間に合わないんだから固まるかメモリなくなるか、どっちかだな。
リアルタイムカーネルならメモリが亡くなる方がはやそうだ。

468 名前:login:Penguin mailto:sage [2007/04/14(土) 12:47:24 ID:NL9NunrN]
>>467
FCをいくつも接続して同時並列に書き込んでるような構成を
勝手に想定してたんだが、違うかな。

469 名前:login:Penguin mailto:sage [2007/04/14(土) 12:54:01 ID:xmp7f+Mm]
>>468
そうだろうね。ファイルシステムもカーネルのバージョンも
システムの構成も秘密みたいだから想像で書くとすると、
ファイルシステムにXFSを使っててジャーナルログが
スワップアウト出来ないメモリをつかんでで、それが
どんどんと溜ってるからmallocできなくなるんと
違うかな。それかカーネルのメモリーリークのあるバージョン
を使っているとか。
あとは dirty_background_ratio を調整するとかあるけど
切り分けのできてない>>458にはさっぱりだろうな。
業者呼べよ。

470 名前:login:Penguin mailto:sage [2007/04/14(土) 13:02:32 ID:rDs8AFmH]
syncして
/proc/sys/vm/drop_cachesをクリアしてみたんですけど
マシン今全部とまっちゃいました。困りました....

471 名前:login:Penguin mailto:sage [2007/04/14(土) 18:55:16 ID:rDs8AFmH]
うーむ、O_DIRECT難しいです。マシン25台止まってしまって焦った。
休みでよかったw


472 名前:login:Penguin mailto:sage [2007/04/14(土) 21:50:04 ID:rDs8AFmH]
マシン復旧シマスター

またまた質問なんですけどO_DIRECTでデータを書き出す場合
char *data = (char *)malloc(512* 1024);
posix_memalign( (void **)&data, 512, 512*1024);
とりあえずこんな形で確保してその後writeすればいいみたいだけど

毎回そんな都合良く倍数ちょうどで書き出せるわけもなく、あまりが出た場合どうすればいいのですか?色々調べてみたのですが、Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。としか記述されていなくて困ってます。

端数でたらどないせっちゅうのか教えてください。




473 名前:login:Penguin mailto:sage [2007/04/14(土) 23:27:26 ID:NL9NunrN]
余りが出ないようにする。つーか、自分で面倒をみる。

つーか、
Linuxプログラミング
pc11.2ch.net/test/read.cgi/linux/1118024349/l50
でする話だな。



474 名前:login:Penguin mailto:sage [2007/04/14(土) 23:29:25 ID:rDs8AFmH]
>>473
ありがとうちょっと聞いて来ます。

475 名前:login:Penguin mailto:sage [2007/04/16(月) 12:57:24 ID:Kkc4V4u/]
CFSにConブチギレ
ttp://www.ussg.iu.edu/hypermail/linux/kernel/0704.1/2458.html


476 名前:KD125053235206.ppp-bb.dion.ne.jp mailto:sage [2007/04/16(月) 23:46:08 ID:yi6AG7ik]
そしてスレの先にはさりげなくグサッと刺すコメントが:

> If these issues aren't fixed, you're going to stuck with the same
> kind of creeping elitism that has gradually killed the FreeBSD
> project and other BSDs.

勝手に殺すなー(ウワワァン

477 名前:login:Penguin [2007/04/18(水) 23:35:59 ID:luJV3V3d]
-----------------------
mm_segment_t fs;
 :
fs = get_fs();
set_fs(KERNEL_DS);
 :
[命令]
 :
set_fs(fs);
-----------------------

set_fs()、set_fs()って何のために使うの?
どういう[命令]の時に必要なの?

わかる人教えて。

478 名前:login:Penguin mailto:sage [2007/04/18(水) 23:51:15 ID:g2KRiZ5Z]
>>477
g新部氏のblogに解説があった希ガス

479 名前:login:Penguin [2007/04/18(水) 23:52:01 ID:luJV3V3d]
>>478
そこは読んだけど見つからなかった。

480 名前:login:Penguin mailto:sage [2007/04/19(木) 00:16:07 ID:hSmrJarJ]
>>479
ttp://www.codeblog.org/blog/gniibe/200603.html
欲嫁

481 名前:login:Penguin [2007/04/19(木) 00:29:35 ID:17XiKx+z]
>>480
そこも読んだけど、結局sock_sendmsg()がset_fs(KERNEL_DS)を必要とする関数であることはどうやって判断するの?
「どういう[命令]の時に必要なの?」かが結局わからない。

482 名前:login:Penguin mailto:sage [2007/04/19(木) 00:33:09 ID:D/ROgTSv]
メールで聞いてみたら

483 名前:login:Penguin [2007/04/19(木) 00:34:15 ID:17XiKx+z]
だれに?



484 名前:login:Penguin mailto:sage [2007/04/19(木) 00:38:51 ID:7WhYig/V]
g新部さんに。

485 名前:login:Penguin [2007/04/19(木) 00:40:03 ID:17XiKx+z]
答えてくれるかな。

486 名前:login:Penguin mailto:sage [2007/04/19(木) 00:44:34 ID:D/ROgTSv]
じゃ、LKMLにヨロ

487 名前:login:Penguin [2007/04/19(木) 00:49:43 ID:17XiKx+z]
えー、ここで答えてよ。

ま、それはいいとして。

hira.main.jp/wiki/pukiwiki.php?put_user()%2Flinux2.6

* Context: User context only. This function may sleep.
ってかいてあるけど、
ユーザアプリからioctl()でカーネルモジュールを呼び出したときも「User context」なの?

コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?


488 名前:login:Penguin mailto:sage [2007/04/19(木) 16:26:37 ID:G/1Uoa6u]
Linux: The Completely Fair Scheduler
kerneltrap.org/node/8059

489 名前:login:Penguin mailto:sage [2007/04/19(木) 16:42:44 ID:Q1Zrb6lC]
>>487
ITRONじゃねーんだからその名前はなかろう。

ここで言う所のコンテキストはメモリ空間という意味ですかねえ。




490 名前:login:Penguin [2007/04/19(木) 20:46:30 ID:x+OTiJML]
>>489
え、どういう意味?LinuxでもITRONでもコンテキストは実行コンテキストのことでしょ?

それはともかく、
コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?他にもある?

491 名前:login:Penguin mailto:sage [2007/04/19(木) 21:25:20 ID:1ECU5YLF]
>>490
これでも読んで出直しておいで。
ttp://www.amazon.co.jp/Linux%A5%AB%A1%BC%A5%CD%A5%EB2-6%B2%F2%C6%C9%BC%BC-%B9%E2%B6%B6%B9%C0%CF%C2/dp/4797338261

492 名前:login:Penguin [2007/04/19(木) 22:15:02 ID:x+OTiJML]
>>491
それは読んだよ。

493 名前:login:Penguin [2007/04/20(金) 10:59:28 ID:/xbU1Fxb]
>>489
何故そこでITRONが出てくるんだ?




494 名前:login:Penguin [2007/04/20(金) 23:42:59 ID:qvG9BAN7]
オブテロンで8CPU SMPにするとカーネルが起動途中で飛ぶのだけど、なぜでしょうか?
ログは当然拾えませんが、どうも5つめのコアを認識した瞬間に飛ぶようなのです。
同じコンフィグでもCPU数だけ4に押さえると正常起動します。
カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。
よろしくお願いします。

495 名前:login:Penguin mailto:sage [2007/04/20(金) 23:50:17 ID:4yJr0CyU]
>>494
lkmlにAndiをCC:入れてGo

496 名前:login:Penguin mailto:sage [2007/04/21(土) 00:54:22 ID:Ptf9W/cp]
>>494
Andiに電話すればよくね?この時間仕事してるはずー

497 名前:login:Penguin mailto:sage [2007/04/21(土) 00:59:38 ID:nVuQG1Bb]
>>494
| カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。

もっと色々試したら? ぐらいしかアドバイスできないな。

498 名前:login:Penguin mailto:sage [2007/04/21(土) 02:29:16 ID:Xw1eIR6s]
とりあえずディス鳥に報告したら?
それともヴぁにらカーネル?

499 名前:login:Penguin mailto:sage [2007/04/21(土) 08:05:20 ID:fsQmaAc+]
まさかCPU最大数4にコンフィグして作ったカーネルとかじゃないでしょうねw

500 名前:login:Penguin mailto:sage [2007/04/21(土) 08:59:11 ID:z7qsSwp3]
Opteron dual core 4CPU のとき似たようなことがあったと聞きました。
直接さわっていないので詳細はわからないのですが、OpenSuSE はだめで、
SuSE Enterprise Linux なら OK でした。いまはそのまま SuSE Enterprise
Linux で稼働中です。



501 名前:login:Penguin mailto:sage [2007/04/21(土) 11:15:11 ID:QaPPng34]
それでは、マザーボードに載ってるチップセットやBIOSの制限ではないみたいだな。

502 名前:login:Penguin mailto:sage [2007/04/21(土) 18:45:34 ID:Ptf9W/cp]
andiにbigironカーネル入れろとか言われなかったっけ?
なんか機嫌わりーぞ?

503 名前:login:Penguin mailto:sage [2007/04/21(土) 21:09:29 ID:Xv/Wu2nU]
>>500
あ、DualCore 4CPUです。
MAX_CPU_NR を8以上にする必要があるのですが、5以上を指定すると飛びます。
ただ、GentooのインストーラCDはなぜか8CPUがすべて認識されているので
できないはずはないのですが・・・
もうちょっとがんばってみます。



504 名前:login:Penguin mailto:sage [2007/04/22(日) 00:06:39 ID:xoee3Fwh]
>499に1票

505 名前:login:Penguin mailto:sage [2007/04/22(日) 00:38:08 ID:NkBup1fI]
はい次の方どうぞー。

506 名前:login:Penguin mailto:sage [2007/04/22(日) 12:41:58 ID:D93fVub+]
>>499, 504
じゃなくて、最大CPU数を4にすれば起動します。
同じ設定で最大CPU数を8にすると5つ目のCPUを認識した瞬間(のように見える)再起動するのです。
ほんとに瞬間的なので、表示されているログをきちんと見ることもできません。

最大CPU4のときの認識の様子は次のとおりです。
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled)
Processor #2 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
Processor #3 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x04] enabled)
Processor #4 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x05] enabled)
Processor #5 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x06] enabled)
Processor #6 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
Processor #7 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.


507 名前:login:Penguin mailto:sage [2007/04/22(日) 12:54:47 ID:U+PMpe/V]
アチャ

508 名前:login:Penguin mailto:sage [2007/04/22(日) 14:04:44 ID:vVxh8mTs]
過ぎたマシンだということだな。

509 名前:login:Penguin mailto:sage [2007/04/22(日) 14:47:42 ID:u8W9t1Vk]
opteron 8 core 持ってるなんて、動かしたらさぞやファンの音が
大きくて、夜は眠れないだろうに。

510 名前:login:Penguin mailto:sage [2007/04/22(日) 16:54:57 ID:D93fVub+]
>>509
電源は1200Wだし、ファンは6基就いているので、確かに凄まじい音です。
しかし家ではないので、大丈夫です。

>>508
そういうことですね・・面独裁のでインストールCDのカーネルそのままコピーしようかなあ・・

511 名前:login:Penguin mailto:sage [2007/04/22(日) 17:01:26 ID:1v3xY9v8]
まさかNR_CPUSの意味を調べていないとかじゃないでしょうねw

512 名前:login:Penguin mailto:sage [2007/04/22(日) 17:46:43 ID:D93fVub+]
NR_CPUSってSMP時の最大CPU数(総コア数)でしょ。
こう書いてありますよ。

CONFIG_NR_CPUS: │
│ │
│ This allows you to specify the maximum number of CPUs which this │
│ kernel will support. Current maximum is 255 CPUs due to │
│ APIC addressing limits. Less depending on the hardware. │
│ │
│ This is purely to save memory - each supported CPU requires │
│ memory in the static kernel configuration. │


513 名前:login:Penguin mailto:sage [2007/04/22(日) 19:21:15 ID:MnbVnfy7]
>>505



514 名前:login:Penguin mailto:sage [2007/04/22(日) 22:54:40 ID:ZEqeNIK2]
バカ発見(藁

515 名前:login:Penguin [2007/04/23(月) 23:40:41 ID:TqECVpvs]
>>514


516 名前:login:Penguin [2007/04/25(水) 09:53:24 ID:NL98Ha60]
LKMLでは相変わらず「俺のほうがおまえのよりデカイ」議論が延々続いているようですが
それはさておき、各種デバイス(USBメモリ等含む)のLINUXドライバ開発を
1600人あまりの精鋭プラス予備軍のカーネル開発者たちが無償で請け負うとの案内が出ていました。
必要な情報は製品の外部仕様と挙動だそうです。
開発されたドライバは公開されるので、製品に「LINUX対応」と銘打つことができるそうです。
周辺・関連機器メーカーの方は検討してみてはいかがでしょうか。

連絡先アドレスは……あとで調べてレスします。

517 名前:login:Penguin mailto:sage [2007/04/25(水) 09:57:01 ID:T+WyufgO]
おいおい、いつの話題だよ。

518 名前:login:Penguin mailto:sage [2007/04/25(水) 11:05:29 ID:xemG7cYm]
>>516
>>436の話とは別?

519 名前:login:Penguin mailto:sage [2007/04/25(水) 17:14:24 ID:LBX5QPyJ]
遅れてきたルーキー

520 名前:login:Penguin mailto:sage [2007/04/25(水) 19:23:31 ID:xemG7cYm]
>>519
BOOMERか!

521 名前:login:Penguin mailto:sage [2007/04/25(水) 20:07:04 ID:wUDqYFFy]
>>520
ボキャ天ナツカシスw

522 名前:login:Penguin [2007/04/25(水) 22:41:50 ID:NL98Ha60]
ハーフライフ一週間のとこに出てたので新しいかと思っていたら
一月の記事でしたOrz

523 名前:login:Penguin mailto:sage [2007/04/26(木) 00:55:12 ID:7guDQNuw]
>>522
だから、いつも言ってるだろう!

おまえは、頭でっかちすぎる。



524 名前:login:Penguin [2007/04/26(木) 09:52:33 ID:+Has5Xzx]
いわれてたっけ●rz

525 名前:login:Penguin mailto:sage [2007/04/26(木) 17:45:24 ID:C7VjAS8c]
STR,STD...

kdump並のウルトラCが必要なのかな。

526 名前:login:Penguin mailto:sage [2007/04/26(木) 20:55:58 ID:GX2/mssv]
どっちかてーとkexecじゃないすかねえ。
APMならBIOSに丸投げできたけど、ACPIはそういうわけにいかんからのう。


527 名前:login:Penguin [2007/04/27(金) 21:53:32 ID:8003YhUG]
ちょっと質問なんですがinotifyを利用しようとちょこちょこっとサンプルを書いてみたのですが、
動作仕様がどうにも理解に苦しみます。下のように、ループでreadしてブロッキングすると、最初の一回だけはreadするのですが、2回目以降無反応になってしまいます。


/* size of the event structure, not counting name */
#define EVENT_SIZE (sizeof (struct inotify_event))
/* reasonable guess as to size of 1024 events */
#define BUF_LEN (1024 * (EVENT_SIZE + 16)
char buf[BUF_LEN];
int len, i = 0;

int fd = inotify_init();
int wd = inotify_add_watch(fd, "/usr/local/hoge", IN_ACCESS | IN_MODIFY);
while(1){
len = read (fd, buf, BUF_LEN);
}



528 名前:login:Penguin mailto:sage [2007/04/27(金) 23:08:59 ID:EZ45sIxG]
>>527
とりあえずすべてのシステムコールで返り値チェックしてerrnoをしらべろ
そもそも /usr/local/hoge はファイル?ディレクトリ?
/usr/local/hoge にどんなアクセスをした?

こういうファイルに
こんなアクセスをしたら
こうなると思ったけど
こんな結果になった

くらいの情報は必要

529 名前:login:Penguin mailto:sage [2007/04/29(日) 20:46:36 ID:rZL1ahYI]
www.linux.or.jp/JM/html/LDP_man-pages/man2/inotify_add_watch.2.html
inotify_add_watch() の呼び出しが成功すると、(略)

これ以降に inotify ファイルディスクリプタから read(2) を行うと、
監視対象ディスクリプタが返される。
これらの read() を行うと、ファイルシステムイベントを示す
inotify_event 構造体が読み出される。返された監視対象ディスクリプタにより、
どのオブジェクトでそのイベントが発生したかを特定できる。

530 名前:login:Penguin [2007/04/29(日) 21:04:08 ID:pBG0iRqZ]
>>529
それは解かるのですが、

while(1){
read(...)
}
としたときになんらかのアクションがあると上記のコードでは、
1.リードでブロッキング
2.イベントが発生
3.ブロッキングしていたreadからinofify_event構造隊のデータが返されます。
4.読めた情報を適切に処理します。
5.1へ戻る

流れとしては上記のようになると思います。問題となるのは初回の動作とn(n>=2)の時で挙動が違います。
・初回は、イベントが発生するとそのまま2以降のシーケンスに流れていきます。
・2回目以降はイベント発生してもずっとブロッキングした状態になります。つまりイベントを関知できていないということです。

それでどうしたらいいもんかなぁと思ってます。


531 名前:login:Penguin mailto:sage [2007/04/29(日) 22:30:19 ID:3LKFnPe9]
>>530

>>528 で尋ねられてる情報の半分も出てないんだが?


532 名前:login:Penguin [2007/04/29(日) 22:32:30 ID:pBG0iRqZ]
>>531
どんなファイルでもなるからやってみろよボケ
さっさとやれ。プログラム書いて動かせよ?しらねーなら
すいませんって言えよボケ

533 名前:login:Penguin mailto:sage [2007/04/29(日) 22:46:35 ID:3LKFnPe9]
なんかひどい言われようだが…

==== program
#include <stdio.h>
#include <sys/inotify.h>

int main(void)
{
/* size of the event structure, not counting name */
#define EVENT_SIZE sizeof(struct inotify_event)
/* reasonable guess as to size of 1024 events */
#define BUF_LEN (1024 * (EVENT_SIZE + 16))
char buf[BUF_LEN];
int len, i = 0;

int fd = inotify_init();
printf("fd=%d.\n", fd);




534 名前:login:Penguin mailto:sage [2007/04/29(日) 22:47:55 ID:3LKFnPe9]
int wd = inotify_add_watch(fd, "/tmp/foo", IN_ACCESS | IN_MODIFY);
printf("wd=%d.\n", wd);

while (1) {
struct inotify_event *ev;
len = read(fd, buf, BUF_LEN);
printf("len=%d.\n", len);
ev = (struct inotify_event *) buf;
printf("%d, %08x, %08x, %d, %s\n",
ev->wd, ev->mask, ev->cookie, ev->len, ev->name);
}

return 0;
}


535 名前:login:Penguin mailto:sage [2007/04/29(日) 22:48:57 ID:3LKFnPe9]
====片方の端末
% cc -o test test.c
% ./test
fd=3.
wd=1.
len=16.
1, 00000002, 00000000, 0,
len=16.
1, 00000002, 00000000, 0,
====もう片方の端末
% echo > /tmp/foo
% echo > /tmp/foo
====
私のところでは問題ない。

linux kernel 2.6.21.1
glibc 2.5







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<123KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef