07/04/18 23:35:59 luJV3V3d
-----------------------
mm_segment_t fs;
:
fs = get_fs();
set_fs(KERNEL_DS);
:
[命令]
:
set_fs(fs);
-----------------------
set_fs()、set_fs()って何のために使うの?
どういう[命令]の時に必要なの?
わかる人教えて。
478:login:Penguin
07/04/18 23:51:15 g2KRiZ5Z
>>477
g新部氏のblogに解説があった希ガス
479:login:Penguin
07/04/18 23:52:01 luJV3V3d
>>478
そこは読んだけど見つからなかった。
480:login:Penguin
07/04/19 00:16:07 hSmrJarJ
>>479
URLリンク(www.codeblog.org)
欲嫁
481:login:Penguin
07/04/19 00:29:35 17XiKx+z
>>480
そこも読んだけど、結局sock_sendmsg()がset_fs(KERNEL_DS)を必要とする関数であることはどうやって判断するの?
「どういう[命令]の時に必要なの?」かが結局わからない。
482:login:Penguin
07/04/19 00:33:09 D/ROgTSv
メールで聞いてみたら
483:login:Penguin
07/04/19 00:34:15 17XiKx+z
だれに?
484:login:Penguin
07/04/19 00:38:51 7WhYig/V
g新部さんに。
485:login:Penguin
07/04/19 00:40:03 17XiKx+z
答えてくれるかな。
486:login:Penguin
07/04/19 00:44:34 D/ROgTSv
じゃ、LKMLにヨロ
487:login:Penguin
07/04/19 00:49:43 17XiKx+z
えー、ここで答えてよ。
ま、それはいいとして。
URLリンク(hira.main.jp)()%2Flinux2.6
に
* Context: User context only. This function may sleep.
ってかいてあるけど、
ユーザアプリからioctl()でカーネルモジュールを呼び出したときも「User context」なの?
コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?
488:login:Penguin
07/04/19 16:26:37 G/1Uoa6u
Linux: The Completely Fair Scheduler
URLリンク(kerneltrap.org)
489:login:Penguin
07/04/19 16:42:44 Q1Zrb6lC
>>487
ITRONじゃねーんだからその名前はなかろう。
ここで言う所のコンテキストはメモリ空間という意味ですかねえ。
490:login:Penguin
07/04/19 20:46:30 x+OTiJML
>>489
え、どういう意味?LinuxでもITRONでもコンテキストは実行コンテキストのことでしょ?
それはともかく、
コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?他にもある?
491:login:Penguin
07/04/19 21:25:20 1ECU5YLF
>>490
これでも読んで出直しておいで。
URLリンク(www.amazon.co.jp)
492:login:Penguin
07/04/19 22:15:02 x+OTiJML
>>491
それは読んだよ。
493:login:Penguin
07/04/20 10:59:28 /xbU1Fxb
>>489
何故そこでITRONが出てくるんだ?
494:login:Penguin
07/04/20 23:42:59 qvG9BAN7
オブテロンで8CPU SMPにするとカーネルが起動途中で飛ぶのだけど、なぜでしょうか?
ログは当然拾えませんが、どうも5つめのコアを認識した瞬間に飛ぶようなのです。
同じコンフィグでもCPU数だけ4に押さえると正常起動します。
カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。
よろしくお願いします。
495:login:Penguin
07/04/20 23:50:17 4yJr0CyU
>>494
lkmlにAndiをCC:入れてGo
496:login:Penguin
07/04/21 00:54:22 Ptf9W/cp
>>494
Andiに電話すればよくね?この時間仕事してるはずー
497:login:Penguin
07/04/21 00:59:38 nVuQG1Bb
>>494
| カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。
もっと色々試したら? ぐらいしかアドバイスできないな。
498:login:Penguin
07/04/21 02:29:16 Xw1eIR6s
とりあえずディス鳥に報告したら?
それともヴぁにらカーネル?
499:login:Penguin
07/04/21 08:05:20 fsQmaAc+
まさかCPU最大数4にコンフィグして作ったカーネルとかじゃないでしょうねw
500:login:Penguin
07/04/21 08:59:11 z7qsSwp3
Opteron dual core 4CPU のとき似たようなことがあったと聞きました。
直接さわっていないので詳細はわからないのですが、OpenSuSE はだめで、
SuSE Enterprise Linux なら OK でした。いまはそのまま SuSE Enterprise
Linux で稼働中です。
501:login:Penguin
07/04/21 11:15:11 QaPPng34
それでは、マザーボードに載ってるチップセットやBIOSの制限ではないみたいだな。
502:login:Penguin
07/04/21 18:45:34 Ptf9W/cp
andiにbigironカーネル入れろとか言われなかったっけ?
なんか機嫌わりーぞ?
503:login:Penguin
07/04/21 21:09:29 Xv/Wu2nU
>>500
あ、DualCore 4CPUです。
MAX_CPU_NR を8以上にする必要があるのですが、5以上を指定すると飛びます。
ただ、GentooのインストーラCDはなぜか8CPUがすべて認識されているので
できないはずはないのですが・・・
もうちょっとがんばってみます。
504:login:Penguin
07/04/22 00:06:39 xoee3Fwh
>499に1票
505:login:Penguin
07/04/22 00:38:08 NkBup1fI
はい次の方どうぞー。
506:login:Penguin
07/04/22 12:41:58 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
07/04/22 12:54:47 U+PMpe/V
アチャ
508:login:Penguin
07/04/22 14:04:44 vVxh8mTs
過ぎたマシンだということだな。
509:login:Penguin
07/04/22 14:47:42 u8W9t1Vk
opteron 8 core 持ってるなんて、動かしたらさぞやファンの音が
大きくて、夜は眠れないだろうに。
510:login:Penguin
07/04/22 16:54:57 D93fVub+
>>509
電源は1200Wだし、ファンは6基就いているので、確かに凄まじい音です。
しかし家ではないので、大丈夫です。
>>508
そういうことですね・・面独裁のでインストールCDのカーネルそのままコピーしようかなあ・・
511:login:Penguin
07/04/22 17:01:26 1v3xY9v8
まさかNR_CPUSの意味を調べていないとかじゃないでしょうねw
512:login:Penguin
07/04/22 17:46:43 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
07/04/22 19:21:15 MnbVnfy7
>>505
514:login:Penguin
07/04/22 22:54:40 ZEqeNIK2
バカ発見(藁
515:login:Penguin
07/04/23 23:40:41 TqECVpvs
>>514
516:login:Penguin
07/04/25 09:53:24 NL98Ha60
LKMLでは相変わらず「俺のほうがおまえのよりデカイ」議論が延々続いているようですが
それはさておき、各種デバイス(USBメモリ等含む)のLINUXドライバ開発を
1600人あまりの精鋭プラス予備軍のカーネル開発者たちが無償で請け負うとの案内が出ていました。
必要な情報は製品の外部仕様と挙動だそうです。
開発されたドライバは公開されるので、製品に「LINUX対応」と銘打つことができるそうです。
周辺・関連機器メーカーの方は検討してみてはいかがでしょうか。
連絡先アドレスは……あとで調べてレスします。
517:login:Penguin
07/04/25 09:57:01 T+WyufgO
おいおい、いつの話題だよ。
518:login:Penguin
07/04/25 11:05:29 xemG7cYm
>>516
>>436の話とは別?
519:login:Penguin
07/04/25 17:14:24 LBX5QPyJ
遅れてきたルーキー
520:login:Penguin
07/04/25 19:23:31 xemG7cYm
>>519
BOOMERか!
521:login:Penguin
07/04/25 20:07:04 wUDqYFFy
>>520
ボキャ天ナツカシスw
522:login:Penguin
07/04/25 22:41:50 NL98Ha60
ハーフライフ一週間のとこに出てたので新しいかと思っていたら
一月の記事でしたOrz
523:login:Penguin
07/04/26 00:55:12 7guDQNuw
>>522
だから、いつも言ってるだろう!
おまえは、頭でっかちすぎる。
524:login:Penguin
07/04/26 09:52:33 +Has5Xzx
いわれてたっけ●rz
525:login:Penguin
07/04/26 17:45:24 C7VjAS8c
STR,STD...
kdump並のウルトラCが必要なのかな。
526:login:Penguin
07/04/26 20:55:58 GX2/mssv
どっちかてーとkexecじゃないすかねえ。
APMならBIOSに丸投げできたけど、ACPIはそういうわけにいかんからのう。
527:login:Penguin
07/04/27 21:53:32 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
07/04/27 23:08:59 EZ45sIxG
>>527
とりあえずすべてのシステムコールで返り値チェックしてerrnoをしらべろ
そもそも /usr/local/hoge はファイル?ディレクトリ?
/usr/local/hoge にどんなアクセスをした?
こういうファイルに
こんなアクセスをしたら
こうなると思ったけど
こんな結果になった
くらいの情報は必要
529:login:Penguin
07/04/29 20:46:36 rZL1ahYI
URLリンク(www.linux.or.jp)
inotify_add_watch() の呼び出しが成功すると、(略)
これ以降に inotify ファイルディスクリプタから read(2) を行うと、
監視対象ディスクリプタが返される。
これらの read() を行うと、ファイルシステムイベントを示す
inotify_event 構造体が読み出される。返された監視対象ディスクリプタにより、
どのオブジェクトでそのイベントが発生したかを特定できる。
530:login:Penguin
07/04/29 21:04:08 pBG0iRqZ
>>529
それは解かるのですが、
while(1){
read(...)
}
としたときになんらかのアクションがあると上記のコードでは、
1.リードでブロッキング
2.イベントが発生
3.ブロッキングしていたreadからinofify_event構造隊のデータが返されます。
4.読めた情報を適切に処理します。
5.1へ戻る
流れとしては上記のようになると思います。問題となるのは初回の動作とn(n>=2)の時で挙動が違います。
・初回は、イベントが発生するとそのまま2以降のシーケンスに流れていきます。
・2回目以降はイベント発生してもずっとブロッキングした状態になります。つまりイベントを関知できていないということです。
それでどうしたらいいもんかなぁと思ってます。
531:login:Penguin
07/04/29 22:30:19 3LKFnPe9
>>530
>>528 で尋ねられてる情報の半分も出てないんだが?
532:login:Penguin
07/04/29 22:32:30 pBG0iRqZ
>>531
どんなファイルでもなるからやってみろよボケ
さっさとやれ。プログラム書いて動かせよ?しらねーなら
すいませんって言えよボケ
533:login:Penguin
07/04/29 22:46:35 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
07/04/29 22:47:55 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
07/04/29 22:48:57 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
536:login:Penguin
07/04/30 00:17:45 XIwj/Z1t
IN_MODIFY入れるとなんか変だな...
537:login:Penguin
07/04/30 11:46:20 mlJ1TH1o
>>527=>>530=>>532が謝る番では?
使い方間違ってただけなんだろ?
しかしマニュアルドキュメントがわかりにくいのは確かだな。
538:login:Penguin
07/04/30 11:57:39 bBqUiCik
>>537
うぜえ、消えろ
539:login:Penguin
07/04/30 12:02:19 JxyWDw/R
もしかして>>532=>>538なのかwwww
540:login:Penguin
07/04/30 12:09:16 I1BXKMoI
>>538
プッ
541:login:Penguin
07/04/30 12:56:29 XIwj/Z1t
ubuntu7.04だとまともに動作しないらしい...
542: ◆Zsh/ladOX.
07/04/30 18:55:59 qUPaHj6D
FedoraCore2(i386)、FedoraCore5(x86_64)でも動かん。ダメポ
543:login:Penguin
07/04/30 20:11:56 vBFiYDj4
ARM/Debian Etch (2.6.15.4)
MIPS/Debian Etch (2.6.17.13)
x86_64/RedHat EL4 (2.6.18)
x86/Gentoo (2.6.21)
で動作確認してるよ。
カーネルで inotify support の組み込み忘れてない?
544: ◆Zsh/ladOX.
07/04/30 20:20:16 qUPaHj6D
>>542のどっちも
% grep -i inotify .config
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
(´・ω・`)
545:login:Penguin
07/04/30 20:22:57 EVyG0KCG
FC5(i686)でも動かない。
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
になってるけど。
546:login:Penguin
07/04/30 20:38:12 vBFiYDj4
initNGで使われてるから、ソース参考にしてみては?
glibcのヘッダではなく、
URLリンク(www.kernel.org)
の定義ではどうよ?
547:login:Penguin
07/04/30 20:38:43 1B6DUYHo
DynTickは急激に負荷がかかるとだめぽだな。
まるで2.4系に退化したみたいだ。
548:login:Penguin
07/04/30 21:20:31 XIwj/Z1t
ubuntuが腐っているようですね。どうもお騒がせしました。
一度目はどんなファイル開いてもうまく行くのですが。その後2度目以降は
無反応になってしまうようです。
FedoraとGentooで試したら問題なかったです。どうもすいませんでした。
549:login:Penguin
07/04/30 22:39:26 QckF6ZL2
すいませんって言
ったな
550:login:Penguin
07/05/01 04:35:25 g0swsIWn
UbuntuとFCの両方ともだめなのか?
もしそうなら何でそうなってるんだろうね?
551:login:Penguin
07/05/01 19:58:03 AzdFd/9E
Linux: Merging in 2.6.22
URLリンク(kerneltrap.org)
552:login:Penguin
07/05/01 23:18:23 mq8aRVBi
ubuntuがダメだFCはうまく行くときもある。よくわからん。
調査中
553:login:Penguin
07/05/08 10:58:27 XKFA94h5
バニラとmmカーネルの関係ってどんな?
mmのが先行してると思っていが
いまはバージョン番号が同じでmmはRCになってるので逆転したの?
554:login:Penguin
07/05/08 11:32:12 LH1r089h
アッシュとナタリアの関係とおなじかんじ
555:login:Penguin
07/05/08 23:03:30 tKtnVwyW
ねね、ユーザの行動完全に監視できるようなモジュールとかないですかね?
しかもrootkit的に隠れて監視しちゃう系のやつないですかね?
556:login:Penguin
07/05/08 23:05:33 W1PwRzk/
>>555
auditd
557:login:Penguin
07/05/08 23:38:29 tKtnVwyW
>>556
auditdすげー遅くないですか?1秒間にsyscall 1万回ぐらい出したぐらいで
ハングしたかと勘違いする程遅くなります。使いものになりそうもないのですが...
558:login:Penguin
07/05/09 00:58:36 Y/s6wdPq
>>557
使い方が悪い。
559:login:Penguin
07/05/09 07:38:44 JBFllK/7
良い使い方は?
560:login:Penguin
07/05/09 18:44:24 AVxUEFYS
userファイルの中に何もないんですが、
どうすれば見れるようになりますか?
561:login:Penguin
07/05/09 18:51:04 sZVL/6LE
くだ質へ逝け
562:login:Penguin
07/05/09 19:14:40 wXCiS1Vp
>>560
$ touch me
563:login:Penguin
07/05/09 22:25:24 eqA1dMQB
Debianスレで質問をしたのですが、こちらに誘導されてきました。
自分で色々試してみたのですが、どうしても解決できないので、分かる方がいましたらアドバイスお願いします。
Debian etchをインストールしたCore 2 Duo T5500マシーンでacpi-cpufreqとcpufreq-ondemandモジュールをロードして、
cpufreq-setコマンドでそれぞれのコアのgovonerをondemandにすると下記のエラーが頻繁に出るようになります。
kernel: rateup[24408]: segfault at 0000000000000000 rip 0000000000000000 rsp 00007fff36e84320 error 14
あとXも不安定になり、Xが勝手に再起動します。
試してみた事は以下の通りです。
M/B(Asus N4L-VM DH)のBIOSを最新にする。
kernel.orgから2.6.21.1を取ってきてインストール。
ondemandの代わりにpowersaveを使う。
564:login:Penguin
07/05/10 07:02:47 0+0Fk0Ga
状況がさっぱりわからないが
cpufreqを使うのをやめたら?
565:login:Penguin
07/05/10 13:43:35 YEr0RFBe
>>564
ありがとうございます。cpufreqを使わなければ何も問題は起きません。
ただPCがアイドル状態の時の消費電力をできるだけ落とすためにCPUの周波数を最低にしたいんです。
cpufreqの他に同じような機能を持つものがあるんでしょうか?
566:login:Penguin
07/05/10 22:46:42 BLWHqLav
プロセス間で共有メモリ使う時一般的にLinux回りだとPOSIXとSystemVどっちが高速?
また、POSIXのMUXTEXとSsystemVのセマフォどっちが高速(Mutexはオプション付けて)
567:login:Penguin
07/05/11 09:14:27 DFDvgY5e
>>565
以前は問題があったようだけど最近は報告されていないようなので、ほかのモジュールとの相性の問題かも。
今のバージョンのカーネルでは、タイミング制御の仕組みの大幅変更を行なったようなので、不整合を起こしているモジュールがあっても不思議はない。
CPU速度をどうしても落としたいというのなら他の方法はないと思う。
ただ、アイドル時の消費電力は比較的少ないので、ファン回転数や画面のスタンバイだけでもそこそこ効果あるでしょう。
568:login:Penguin
07/05/11 09:44:05 YfnV2Hgz
>>567
分かりました。ありがとうございます。
experimentalなモジュールを色々使ってるのでしょうがないのかもしれません。