Linuxプログラミング ..
[2ch|▼Menu]
175:login:Penguin
07/08/16 00:34:39 yq0XfAX7
デバイスを6個監視する場合
select、epoll、poll

どれが一番CPUとSyscallの消費が少ないのでしょうか?
どうにもepollってデバイス20個ぐらいないと重いような気がするのですが
どうなんでしょうか?

176:login:Penguin
07/08/16 01:54:41 QulO8FUO
>>175
selectの中の人はポールさんだから大丈夫

177:login:Penguin
07/08/16 21:48:08 yq0XfAX7
あうー?なんかepollの方がselectよりCPU食うんだけど
なんで?

178:login:Penguin
07/08/16 21:55:22 AwhSe/8M
epollって1000とか2000とかのfdを管理するのに
使うんじゃないのか?

179:login:Penguin
07/08/19 23:08:57 Jwx7kX+u
ちょっと質問なのですが

Kernel2.4でNPT使って時刻同期します。
その結果をなるべく正確にSystemで扱おうとするなら
使うべきシステムコール(API)どれに限定されるのでしょうか?

要件は限りなく100ms、500ms、1000msを正確に扱いと思ってます。

ある処理Aを実行(timestamp添付)---->timestampをみて処理Bを実行
って感じでしたいのですが


180:login:Penguin
07/08/19 23:25:15 vDapTuA8
>>179
gettimeofday見てselectで寝ろ

181:login:Penguin
07/08/19 23:39:13 Jwx7kX+u
>>180
gettimeofdayで見てふて寝すると
他のプロセスに影響受けないのでしょうか?

プロセスが起動した後、プロセスの経過時間は
他のプロセスに影響を受けずにHzに依存した
値が必ず取れるような事を聞いたのですが
ソースがどこにあるのか不明確でいまいち自身が持てません。

182:login:Penguin
07/08/20 00:02:10 vDapTuA8
>>181
どっちに転んだってユーザランドじゃ大した精度出ないんだから
10ms20msは我慢しろ
usleepだってHzずれるんだからビジーるなら10ms以下にしろ

183:login:Penguin
07/08/21 23:42:58 pHBjUifM
あのーちょっと質問したいのですが


pthread_mutexがガチロックしたのか
スルーしたのか回数計測したいときみんなどうしてるのですか?

184:login:Penguin
07/08/23 22:49:48 UiMaHCiE
SMPに影響受けないでrdtsc を
有効に利用するにはどうすればいいのでつか?

185:login:Penguin
07/08/24 21:28:32 5YYyJQdp
SMPを切る・・・
またはどっちのCPUか見る

186:login:Penguin
07/08/24 23:19:03 16/3XJrM
>>185
そんなのヤダもっとましな回答して

187:login:Penguin
07/08/25 01:21:25 RAJat6oH
じゃあCPUを指定してみるしかないな

つーか、今どきrdtscなんてつかわねーよ

188:login:Penguin
07/08/25 01:35:08 QDqJEumv
>>187
じゃあ何使うの?kernel2.4.24なんだけど
何使えばいいの?

gettimeofdayとか馬鹿なこといわんでね
半端無いほど重いから
1秒間に処理56万回走るからそんなもん
呼べないからさ

189:login:Penguin
07/08/25 14:52:48 vg/ekNcu
>>188
rdpmcでも見とけ

このくらい自分で考えるか調べるくらいやってみせろよ

190:login:Penguin
07/08/31 00:22:30 bNhX50eL
-finstrument-functionsで関数のアドレス収集してるのですが

親プロセスがforkしてできた子プロセスが利用する関数アドレスも
収集するにはどう工夫すればいいの?



191:login:Penguin
07/08/31 08:43:41 JY1783PZ
そういうのはgccのオプションだけじゃむり。
oprofileでも使うのがよろし。


192:login:Penguin
07/09/01 17:10:23 a8PEtCzI
FD_SETSIZEを変更したいんだけど
カーネルに手をつけたくない

193:login:Penguin
07/09/01 17:13:55 imGXo2iv
>>192
変更しなきゃならない用途ならepoll使えよ。

194:login:Penguin
07/09/01 18:29:48 a8PEtCzI
まあそういうなよ
プログラム直すの面倒ジャン
ちょっとの変更ですむならそれに越したこたないさ

195:login:Penguin
07/09/03 07:50:58 8cQjC7y5
epollでselectもどき作ればいいじゃん

196:login:Penguin
07/09/07 00:37:18 KH51Gp9U
wait(2)が戻した結果のintの変数をpretty printしてくれる関数ってありましたっけ

197:login:Penguin
07/09/07 01:55:34 WJVdacsE
FD_SETSIZEは、アプリケーションのコンパイル時に設定されてれば
いいみたい。
カーネルのバージョンによってはカーネル変数の調整は必要かもしれんけど。

URLリンク(www.drk7.jp)
URLリンク(vce.ce-lab.net)


198:login:Penguin
07/09/08 02:39:58 TlovepZt
e1000のモジュールのスタックに
直接パケットデータ突っ込むにはどうすればいいの?

そんな野蛮な変態プレイはそもそも不可能?

199:login:Penguin
07/09/08 15:18:35 WTAz4Fzz
e1000のドライバー改造すれば?
メリットないと思うけど。

200:login:Penguin
07/09/09 00:53:48 f5ZEEQ8F
>>199
SysCall 減らしたいんですよね

あと300msec速くしたいんだけどもう
詰めるところなくて

201:login:Penguin
07/09/09 02:30:46 aJCtB81I
めちゃくちゃ減らす必要があるなそれ
300msなんてあったら昇龍拳の無敵時間だって切れちまうぞ

202:login:Penguin
07/09/09 21:25:21 DeeQH1b4
要求設計から間違っている。


203:login:Penguin
07/09/09 22:18:51 bapUmkn7
syscall減らしたくらいじゃ300msecも減らないって。

204:login:Penguin
07/09/09 23:34:44 YHSemaf1
300msって今が何msで、何を300ms短くしたいんだ?


205:login:Penguin
07/09/10 00:03:29 BXnhWyVJ
>>204
俺もそれずっと疑問だった。

206:login:Penguin
07/09/12 00:28:38 oZCXyX9R
FIFOというか、なんかプロセス間でデータを渡せるキューを作りたいんだけど
キューになんかデータが残った状態でPCの電源切って再起動して
またプログラム動かしたら続きから読み出せるようにしたりしたいので
共有メモリやらメッセージキューやらではない方法で何かいい手を探し中。
なんか良いアイデア無い?

今はSQLiteとか使ってDBをキュー代わりにしてるんだけどなんか
大げさな気がするし、こんな使い方を世間が許すのかちょっと疑問。

207:login:Penguin
07/09/12 00:58:56 1T4//6px
queue daemonでggr
LPRngとか?MTA系全般?でもSQLiteより大げさか。
ホントに出し入れだけでいいならmaildirフォルダで処理してもいいかな。
O_SYNC+mmapでファイルにマップしたオンメモリキューの操作でもいけるかな。



208:login:Penguin
07/09/12 01:09:11 oZCXyX9R
queue daemonでググったら>>207がひっかかった
なんだグーグルのこの異常な速さ

それはさておき、大げさなのが嫌なのは
少しだけ速さを要求されるからなのです
といってもまー大した問題じゃないか

209:login:Penguin
07/09/12 01:25:05 1T4//6px
>>208
書き忘れてたけど、BDBのqueueでいいのかも


210:login:Penguin
07/09/12 13:03:41 u3WShS8c
MQ

211:206
07/09/12 13:15:50 u4sMCnUI
>>210
これ、本物のファイルで出来たっけ?

212:login:Penguin
07/09/12 23:31:37 JMXvhgKg
10GbpsのNICを2枚装備している
マシンがあるのですが

eth0から毎秒500MB/secでデータ受けて
そのデータをeth1に転送してます。
recvとsendで処理してるのですが
すぐ8CPUとも80%前後まで使用してしまいます。

もっと言い方法ないですかね?

213:login:Penguin
07/09/12 23:57:54 +2hRysfN
>>212
splice?

214:login:Penguin
07/09/13 11:12:31 V08yA5s5
>>212
/proc/sys/net/ipv4/tcp_{rw}mem
を調整

215:login:Penguin
07/09/13 14:36:42 CQWMmnll
コマンドラインのkillallと同じようなものをCで実装したいとき
なんかかっこういい方法ある?

216:login:Penguin
07/09/13 14:41:36 V08yA5s5
killallのソース見たら?

217:login:Penguin
07/09/13 14:44:59 +lSCice8
term シグナルを送りまくれ。
ソースをそのままパクレ。

218:login:Penguin
07/09/13 22:26:06 RMrzW8HD
>>210
MQって何?(というかどれ?Javaなのしかかからん・・・)

219:login:Penguin
07/09/13 23:22:59 YhbwIeB9
>>214
その辺はいじってるけどそんなんじゃ焼け石に水だったw

結局さどうすりゃいいのかね
eth0からeth1にパケットデータ中継したいだけだからさ
zero copyできるような方法ないのかな?

sendfileは入力デバイスがファイルmmapじゃないとダメだったし
spliceも入力もだめだった。

あと方法ないかな?

220:login:Penguin
07/09/14 10:19:36 LGchwi2d
>>219
spliceはsendfileを置き換えて任意のディスクプリタがOKになって
いるはずなんだか。カーネルのバージョンはいくつ?

221:login:Penguin
07/09/14 10:21:51 LGchwi2d
>219
あとはcold.sysで聞いてみるとか。

222:login:Penguin
07/09/15 01:08:50 Gol0FyEz
>>220
Linux Ubuntu 2.6.20-16-generic #2 SMP Thu Jun 7
20:19:32 UTC 2007 i686 GNU/Linux
ですけど対応しているから問題ないですよね?

eth0 = socket()
eth1 = socket();

後はspliceでいいのですよね?
splice(eth0, NULL, eth1, NULL, size ,SPLICE_F_MORE | SPLICE_F_MOVE

>>221
えーとそれどこでしたっけ?




223:login:Penguin
07/09/15 01:53:37 YiwEKkpX
>>220
man 2 splice だと

 splice() moves data between two file descriptors...
 ...where one of the descriptors must refer to a pipe

とかあって、この "pipe" って何? pipe(2) な pipe ?と微妙に
どんな意味の制約なのか読めてないんだけど、知ってたら教えてくらはい。

あ。漏れは元質問者とは別の中の人です。

224:login:Penguin
07/09/15 11:40:17 X+EQNSuz
>>222,223
間にpipeはさむ事で組み合わせの爆発を防ぐの。
splice linux 使い方、でググれよ。

225:login:Penguin
07/09/15 13:00:59 WW33Uygn
>>221
cold.sysって何ですか?

226:login:Penguin
07/09/15 13:34:32 v9/27PR8
comp.os.linux.development.sys ?

227:login:Penguin
07/09/15 14:53:45 Gol0FyEz
cold.sysで聞いたら
japは2chで聞けよって笑われたんだけど

どうしたらいいのw?

228:login:Penguin
07/09/15 16:17:21 YiwEKkpX
>>227
fjにでも逝け

229:login:Penguin
07/09/15 20:17:38 WW33Uygn
>>227
ログ見せて

230:login:Penguin
07/09/15 20:33:58 26HMq0m6
>>227
c.o.lは2chと同じだからな。
だいたいLinux自体煽りから生まれた代物だし。
Linuxでまともに質問できる場所なんて未来永劫現れないよ。
金払っても無理だ。
レッドハットサポートつかえばよく分かるぞ。

231:login:Penguin
07/09/15 22:11:48 ZssMtkX9
レッドハットじゃあ話にならんだろ。
IBMなんかのほうがまだマシ。あれもお寒いものだが。

バカ高い金を払ってもいいなら、VAはそれなりの回答をくれた。
といってもずいぶん前の話だから、最近はどうだか知らないけど。
2、3年前から安いサービスをやってるけど、あの値段じゃあたいした回答は貰えないだろうなと思った。

232:login:Penguin
07/09/15 23:20:27 26HMq0m6
それを考えるとやはりマイクロソフトが相当お買い得なんだよな。
開発元直結っていう強みなんだろな。

233:login:Penguin
07/09/15 23:29:55 2Di70A/1
確かにredhatに電話した後msに電話するとあまりの対応の違いに
MS信者になりかけてしまうよな
ならないけど

234:login:Penguin
07/09/16 00:13:28 C2jUU4Gn
まじな話ぐぐるの人間と酒飲みながら
話たほうが勉強なるってところで
RもVも終わってる。

235:login:Penguin
07/09/16 00:17:06 0jBsOxD6
MSいいか?ちょっとでも込み入った質問は全部USに転送されて時間かかるし、
翻訳ミスだかUSのエンジニアもたいしたことないんだか知らんが、まだ
回答に満足できたケースがないんだが。スレ違い+チラシの裏ですまん。

>>231
VAって何をきくのにいくらくらいかかるの?
その、まぁまぁまともな高い方とやらで。


236:login:Penguin
07/09/16 00:19:38 xdnEBkyg
> 何をきくのにいくらくらいかかるの?
馬鹿発見。

237:login:Penguin
07/09/16 00:26:49 0jBsOxD6
>236
理由は?

238:login:Penguin
07/09/16 00:47:56 C2jUU4Gn
VA200万ぐらいからなかったっけ?

239:login:Penguin
07/09/16 06:21:36 jr/7tlT0
>>237
理由は?って・・・
理由がわからないのお前だけだと思うぞw

240:login:Penguin
07/09/16 12:39:28 0jBsOxD6
だめだこいつ。

Linuxの質問を業者にするという感覚が不思議なんだよね。俺は必要なら当然自分で調べる。
自分で調べる能力の欠如した低能は最大でいくら位お布施してくれるのかなと思ってさ。


241:login:Penguin
07/09/16 12:51:44 UUEKlOam
>>240
だからこそじゃないか。
漁場は大事にしなきゃだめだぜ

242:login:Penguin
07/09/16 12:55:35 jr/7tlT0
>>240
お前は食べるものは全部自分で作るのか
魚は稚魚から育て、コメは稲から育て
その感覚がまずわからんわ

243:login:Penguin
07/09/16 13:01:30 0jBsOxD6
> お前は食べるものは全部自分で作るのか
> 魚は稚魚から育て、コメは稲から育て

そうだよ。オープンソース関連についてはね。
お仕事頑張ってね、SEさん☆



244:login:Penguin
07/09/16 14:04:18 huGDb2pP
金払ってサポート受けてると、サポート外になるからって、回避策とかみつけてもやらせてくれないし、
やる気がなくなるよ。

と、書いてみたが、プログラミングのサポートなんか受けたことないんだった。

245:login:Penguin
07/09/16 14:12:41 36uWBAtJ
>>243
それではまず半導体プロセスについて語ってもらおうか。
原石はどこから切り出しているんだ?

246:login:Penguin
07/09/16 14:19:01 uzxa+jYq
わざわざ言うことでもないだろうが内心は>>240、外面は>>241でいいんじゃないか。
>>245みたいな馬鹿はおいといて

247:login:Penguin
07/09/16 14:54:34 M2oozAy/
ヲタの趣味なら納期もコストも関係ないけどなぁ。
オープンソースで一番困るのは、不可解な動作があったとして
それが仕様に該当するのかそれともバグと考えていいのか
誰も判断できないことなんだよな。

248:login:Penguin
07/09/16 14:59:52 C2jUU4Gn
>>247
それはいくらなんでもないだろ。
アセンブラよまねーとならねぇなんてことはない。
結局責任とりたくないだけだろうな

APIもソースも見れてそれはないよね?

249:login:Penguin
07/09/16 15:19:02 M2oozAy/
>>248
それ何のギャグ?

250:login:Penguin
07/09/16 15:22:25 M2oozAy/
あぁ、これが釣りってやつか。
わかんなかったわ。

251:login:Penguin
07/09/16 17:28:06 huGDb2pP
オープンソースなら、ソースにある通りだろ。
まあ、コンパイラとかのバグもあるけど。

252:login:Penguin
07/09/16 20:12:51 0c6+c6lv
これがLinuxクオリティー。
そしてこんなやつらがトップクラスのLinuxエンジニアらしい。

253:login:Penguin
07/09/16 20:21:50 0c6+c6lv
> オープンソースなら、ソースにある通りだろ。
> まあ、コンパイラとかのバグもあるけど。
何度見てもすげーな。

254:login:Penguin
07/09/16 23:20:30 huGDb2pP
だって、ドキュメントが当てにならないプロジェクト多いじゃん。
あと、残念ながら、全然Linuxエンジニアじゃないから。
Linuxは使うだけ。

255:login:Penguin
07/09/16 23:51:20 qjxl6X83
>>254
まぁエンジニアじゃないなら仕方ないか
もしPGで「ソースが仕様書」なんて言ってたら
若狭湾に浮かべてたとこだ

256:login:Penguin
07/09/16 23:59:57 ga5wXfPF
>>255
なに言ってるの、基本じゃんw

257:login:Penguin
07/09/17 00:18:13 Gghi5nzi
考えるな、感じるんだ!!

258:login:Penguin
07/09/17 00:35:37 KF6+83sP
>>255
PGなんて略語を使ってる時点でお里が知れるぞ。
まぁあと、きみの論法だとgoogleの連中はみんな若狭湾だな。

259:login:Penguin
07/09/17 01:05:07 7mF7zMDJ
「仕様書」が存在するかどうかに関わらず、ソースは実装であって仕様ではないだろ。
ソースが仕様なら、バグなんてものはあり得ないよな。仕様通りで、正しいものなんだから。

260:login:Penguin
07/09/17 01:25:23 ifKoWn9t
いや、オープンソースってそういうものらしいぞ。
あれだけ偉そうな書き込みかましてるくらいだから、相当名のある
Linuxエンジニアなんだろ。
そいつらがいうんだから間違いないだろw

普通はサポートの返答の一番最初に仕様かバグかはっきりさせてくれるもんだよな。
はっきりしない場合は、丁寧なお詫びの言葉を述べてくるだろ。
俺はそういうものだと思ってたし、それを期待してるんだよ。

261:login:Penguin
07/09/17 07:55:20 s0twSYHE
ps -eLf とすると、スレッドのID (LWP) を画面表示できますが、これを取得するシステムコールって
あるんでしょうか? psは/procを読んでるだけ?

pthread_self()で取れるulong値とは別物です。

262:login:Penguin
07/09/17 09:24:18 G7dAmd5E
>>261
どうしてpsのソースを見るという発想がないのか。
センスないよ。プログラマやめたら?

263:login:Penguin
07/09/17 09:33:47 pdW5VZYg
トラぶったときやること。
1. ドキュメントみる
2. 本家が出してる情報を探す。Webページがあるなら、news/update, errata, FAQとか。
3. 本家のBTS, ML/Forumがあれば、そこを見る
4. Web検索
-------
5. strace/ltrace等で追ってみる
6. ソースみる
7. デバッガ使って深追い(発生している現象の解析、一般化)

BTSすら見ないひとも結構居るね。
ひたすら現象だけ追ったり(パケットキャプチャとかね)して、時間がもったいない。
おかしくなってるのがわかったら、BTSとかMLで、事例がないか調べてみればいいのに。

>>260
サポートが受けられる範囲で、大口ならそういうサポートが受けられるのかな?
構築とかまで全部任せてるとか。

264:login:Penguin
07/09/17 09:45:38 s0twSYHE
>>262
スレの流れ上そういうムードなのかもしれんが、煽るなよ。
ちょうどよい書き込みがあった(>>261)ばかりだが書くが、もちろんソースも見ている。

strace ps -L の結果から(下記)、/proc/pid/task/ のエントリ数を見て自分の抱えてるスレッド
のIDを得てることにほぼ間違いないと思いつつ、ソースを確認しているところなわけね。

open("/proc/18220/task", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 6
fstat64(6, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0
getdents(6, /* 5 entries */, 1024)      = 92
stat64("/proc/18220/task/18220", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/18220/task/18220/stat", O_RDONLY) = 7

ここで聞いたのは、思わぬ勘違いの可能性を少しでも減らすため。あと、psコマンドが非効率
なことやってる可能性もあるから、最新のシステムコールを知っている人間からの回答があっ
たら嬉しいな、とか。そのへん。


265:login:Penguin
07/09/17 09:48:15 s0twSYHE
眠いようだ。typo訂正。

正: ちょうどよい書き込みがあった(>>263)ばかりだから書くが


266:login:Penguin
07/09/17 13:41:16 2vZ6I9C9
>>263
Linuxサポートは、ぐぐったらこんなページがありましたけど
なんて普通に述べられたりして結構ビビるよね。

267:login:Penguin
07/09/17 16:13:28 s0twSYHE
>>266
それが自分のページだったりしたら笑えるな。調べ物をしていると、日本語での情報が自分のblogしか
ないってことがよくあるので。


268:login:Penguin
07/09/17 16:25:52 KQNRR09N
>>267
あるあるw

269:login:Penguin
07/09/17 18:23:28 IoEVGx7E
g++-4.1.2, libstdc++-4.1.2で、std::fostreamのインスタンスから、対応するfile descriptorを得るにはどうしたらよいでしょうか?

270:login:Penguin
07/09/17 18:52:45 warckn1B
>>267
それで金とれるんだから、オープンソースっておいしいよな。

271:login:Penguin
07/09/18 00:07:49 FePolVgo
ドライバに依存しないで

sk_buffにアクセスするにはどうすればいいの?

272:login:Penguin
07/09/18 10:09:49 CbMPhksH
/proc/kcore

273:login:Penguin
07/09/18 13:22:37 ApHFmsOy
root権限で動いてるんだけど、hogeというユーザからのsignalは受け付けたい

というときには何をすればいいんだっけ

274:login:Penguin
07/09/19 00:40:52 2QfTM7JO
raw socketから上がってくるデータに
タイムスタンプ付けたい場合ってLinuxの場合
どうするの

getなんちゃら禁止だとどうゆうことができそうなの?

275:login:Penguin
07/09/19 09:41:24 Xd50Xp8J
>>273
sudoでええやんか。


276:login:Penguin
07/09/19 19:43:52 zj6+rBh8
>>275
それじゃhogeというユーザじゃなくなっちゃうじゃん

277:login:Penguin
07/09/19 21:21:59 0ExJA0em
>>273
SELinux 使え
それ以外は無理

278:login:Penguin
07/09/19 22:22:40 d9OxuuhF
>>273 >>277
capabilities(7)のmanみれ


279:login:Penguin
07/09/19 23:04:15 zj6+rBh8
>>278
すばらしい。。お礼にあとでおいしそうなラーメン画像うpするわ。

280:login:Penguin
07/09/19 23:17:27 d9OxuuhF
>279
まぁ死ぬほど使いにくい仕組みだけどな。POSIXのケイパビリティは。
SELinux+SEEditも試しとけ。

281:login:Penguin
07/09/22 04:25:23 0+hWr/d7
futex使い方おせーて

282:login:Penguin
07/09/22 04:51:08 rfMprt9C
drepperタンのドキュソメントでも読んどけ。

283:login:Penguin
07/09/22 05:30:16 0+hWr/d7
どこにあるの?

284:login:Penguin
07/09/22 06:51:15 rfMprt9C
URLリンク(people.redhat.com)

285:login:Penguin
07/09/22 15:34:57 0+hWr/d7
おいkernel2.4でfutexつかえねーぞ



286:login:Penguin
07/09/22 15:43:22 t3vHBCq6
>>285
五月蝿いよ、スレ汚し

287:login:Penguin
07/09/22 15:44:56 rfMprt9C
>>279
お礼のラーメン画像まだ?

288:login:Penguin
07/09/22 16:53:44 F0YS4UKz
A,B,C というプログラムがいて、それぞれが好きなタイミングで
あるキューにデータを積む
それをDというプログラムが好きなタイミングで取り出して処理する

というプログラムを書きたいんだけど、この場合
キューにどんな仕掛けを使うのが一般的かな


289:login:Penguin
07/09/22 16:57:10 ZMcdaoSF
乱数?

290:288
07/09/22 17:01:08 F0YS4UKz
好きなタイミング ってのは任意のタイミングってことで。
メールスロット?みたいな機能を作ろうと思ってます。

291:login:Penguin
07/09/22 17:05:49 rfMprt9C
>290
mq_*();

URLリンク(www.opengroup.org)

292:login:Penguin
07/09/22 17:05:54 ZMcdaoSF
mmap?

293:288
07/09/22 17:35:59 F0YS4UKz
>>291
ありがとう!
メッセージキューって、多対1は出来ないと思い込んでたよ。

ちょっとこれで1時間くらい組んでみる。

294:login:Penguin
07/09/22 17:38:25 0+hWr/d7
>>293
速度おせーけどいいのか?

295:288
07/09/22 17:46:05 F0YS4UKz
>>294
やりとりが200ms以上遅延しなければ問題ないです。

あんまりにも遅ければキューのルーチンだけ
別の方法に切り替えるまでです。

296:login:Penguin
07/09/22 18:00:42 rfMprt9C
>294
遅いって、何とくらべて、どんな処理が、どの程度遅い?
@Linux 2.6 w/ futex


297:login:Penguin
07/09/22 19:23:22 SmO2oYOC
                  マチクタビレタ〜
      ☆ チンチン〃   Λ_Λ   / ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < おいしそうなラーメン画像マダー?
マチクタビレタ〜 \_/⊂ ⊂_ )   \____
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |   マチクタビレタ〜


298:login:Penguin
07/09/22 19:57:14 VDh1QMev
>>279じゃないけど、おいしそうなラーメン画像張っておきますね。
URLリンク(showa-diary.com)

299:login:Penguin
07/09/22 20:01:27 iMrKxTpi
かなしい気分になりました。

300:login:Penguin
07/09/23 01:25:08 tBRgGEFT
最近知ったシステムコールと関数:
pread(2), posix_fadvise(3), dirfd(3)

活用法を勉強中のシステムコール:
madvise(2)

以上、俺のチラシの裏として活用させてもらいました。

301:login:Penguin
07/09/23 04:05:45 R2J73xCx
>>299さんに拾い物を押し付ける
URLリンク(image.blog.livedoor.jp)

302:login:Penguin
07/09/23 14:29:30 2H3sPwph
メッセージキュー(mqueue)を使うプログラムを書いて、コンパイルして
リンクしたらmq_openとかが無いっつわれた。

これって、-lなんとかのライブラリを指定しないと駄目なの?

303:login:Penguin
07/09/23 14:43:48 tBRgGEFT
% for i in /lib/lib*.so /usr/lib/lib*.so ; do (nm -D $i | grep " T mq_open" 2>&1 > /dev/null) && echo $i ; done
/lib/librt-2.5.so
/usr/lib/librt.so

ということで -lrt したら?



304:login:Penguin
07/09/23 14:43:59 mx2b6ImT
マニュアル読め

305:login:Penguin
07/09/23 14:54:32 tBRgGEFT
>>304
mq_open(3)には記載がない悪寒

306:login:Penguin
07/09/23 14:56:54 tBRgGEFT
mq_overview(7)に書いてあるようだねぇ。知るかよw


307:login:Penguin
07/09/23 15:03:44 CJrcPuMq
>>306
知らない方が異常

308:login:Penguin
07/09/23 15:06:17 tBRgGEFT
すごーい。

309:login:Penguin
07/09/23 15:07:16 8ALjKCMy
gentoo のマニュアルには mq_* 全部に書いてあった

310:login:Penguin
07/09/23 15:15:42 tBRgGEFT
mq_のマニュアルってglibcの一部だよね?
gentooでは自前で製作しているということなのかな

311:login:Penguin
07/09/23 16:49:21 1fQtWZJX
Gentooは普通にLinux Programmer's Manualだけど、
2006-02-25だと書いてあるみたい。


312:302
07/09/23 17:30:26 2H3sPwph
>>303
ありがとう!
お礼にあとでおいしそうなカツ丼の画像をうpするよ

>>306
それ見てたんだけど見逃してたよ。俺の目は節穴だった。ごめん。

313:login:Penguin
07/09/23 17:33:10 tBRgGEFT
ラーメンは来なかったら、今度は期待してるぜ。

314:login:Penguin
07/09/24 00:52:36 kgZ5pKnk
>>313
URLリンク(peach-daioh.cool.ne.jp)
URLリンク(peach-daioh.cool.ne.jp)
ちょっと大きめだけど

315:login:Penguin
07/09/24 01:08:05 ytCajFbL
グロ画像にしか見えません。そもそもLinuxプログラミングと関係あるのか

316:login:Penguin
07/09/24 03:02:18 vibgjhrs
>>315
ky

317:login:Penguin
07/09/24 04:24:37 d3+l1tl9
>>315
キャインキャイン!

318:login:Penguin
07/09/24 10:39:15 hY1Zpi5v
>>316
なにがkyだ。それは手前の方だろ

319:login:Penguin
07/09/24 11:40:48 oWdnqGOu
kyってなに?
最近略語が増えてついていくのが大変

320:login:Penguin
07/09/24 11:53:42 wKP5qWj5
Kuuki Yome

321:login:Penguin
07/09/24 11:57:56 K+J+mAAI
空気嫁

322:login:Penguin
07/09/24 12:00:15 oWdnqGOu
>>320-321
ありがとう。これで空気読めるようになったよ。

323:login:Penguin
07/09/24 14:40:26 d3+l1tl9
読めてません。

324:login:Penguin
07/09/24 16:44:27 /TENigCK
ある特定のライブラリ(libXXX.a)の中でメモリリークが発生していることがわかっているので、
そのライブラリだけBoehm GCのmallocに差し替えたいんですが、そういうことってできまし
たっけ?

325:login:Penguin
07/09/24 16:49:02 /TENigCK
>>296もよろしく。>>294


326:login:Penguin
07/09/25 00:42:58 tOnrroA3
>>324
malloc フックでぐぐれ

327:login:Penguin
07/09/25 01:14:39 DweR4QXy
>>324

libをデバッグシンボル込で作成して
valgrindで調べた方がよくねーか?

そうしたら動作シーケンス解かるから
あとは単体で実行してデバッグすれば
よくね?

そうゆう解決方法は根本的な対処にならないから
やめれ。リークしてるものは修正しろ

328:login:Penguin
07/09/25 23:16:01 DweR4QXy
>>324
同級生に1人はいた、借りたものを返さないやつだな。

借金沢山ありそうw

329:login:Penguin
07/09/26 00:06:34 YpckYtbt
>>324
mallocってシステムコールじゃないっしょ。リコンパイルなしでは無理っしょ

330:login:Penguin
07/09/26 01:26:15 yQRyKR94
LD_PRLOAD子欄の?


331:login:Penguin
07/09/26 21:16:50 v+gFFOHB
>>327
LinuxはWindowsと違って多少リークしてても普通に動くよ。
実際、安定しているといわれてるアプリでもリークしてるものが多い。
例えばFirefoxとかGimpとかね。
コマンドの中には最初から解放しない戦略をとってるものもあるし、
多少のリークは修正する必要がない。
実際、有名なアプリでも修正しない戦略をとってるものがあるしね。
ほら吹きOSじゃないんだから、メモリーなんていちいち気にする必要ないんだよ。

332:login:Penguin
07/09/26 21:30:49 M/+a2TgQ
また変な釣りが湧いて出たか

333:login:Penguin
07/09/26 22:28:15 FU3404FR
バイオワーム未満のまずい餌を
みてひさびさに閉口したw

334:login:Penguin
07/09/26 22:32:32 P0NX8bPM
  ,-´ ~¨"''''‐- .,
  |` ー- ...,,,___.)
  |\丶}} !{   |i i|
 |`ィ,,ヽ {j   }、l|
 ヘミノ /^\ヽ_/^!:|i
 l_ノ V u _ノ   、リ
 人 >  ( ●)(●)  何を言っているのか わからねーと思うが
/ハノゝ u  (__人__)  おれも何を言っているのかわからなかった…
 V"     ` ⌒´ノ
.  |         }   常識的に考えて・・・
.  ヽ      u   }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \

335:login:Penguin
07/09/26 23:22:54 v+gFFOHB
>>333
バイオワームがまずいんじゃなくて
お前の料理がまずいんだ
素材のせいにスンナボケ

336:login:Penguin
07/09/27 01:01:03 gsAwBD+f
>>330
へー Linux の静的ライブラリは環境変数 LD_PRLOAD で置き換えできるのか〜
教えてくれてありがとう。

337:login:Penguin
07/09/27 02:34:38 VzBoMjAX
>>336
L D _ P R L O A D 子 欄 の ?
Hint:.a
Hint:PRLOAD

338:login:Penguin
07/09/27 08:49:58 hzAH420J
>>336
static linkされたものを置換できるとは誰も言ってない。
勝手に拡大解釈するな。Linkder&Loadersとか、適当な本で勉強汁。

あと、LD_PRELOADな。Eが抜けてる。


339:login:Penguin
07/09/27 08:50:59 hzAH420J
Linkder&Loaders
じゃなく
Linkers&Loaders

ごめん。

340:login:Penguin
07/09/27 11:29:56 x6U3NKaN
あ る 特 定 の ラ イ ブ ラ リ ( l i b X X X . a ) の 中 で

341:login:Penguin
07/09/27 13:50:54 iv68VIR1
適 当 な 本 で 勉 強 汁 。


342:login:Penguin
07/09/28 00:09:07 MDX80Mu5
mallocってシステムコールかいな

343:login:Penguin
07/09/28 02:07:37 wLKx4a83
>>324
そのライブラリだけってのが気になるがLD_PRELOADで差し替えできるようだね。
前提や条件を受け入れられるかは知らないが。
URLリンク(www.hpl.hp.com)

関係ないけどleak.htmlの最後にさらっと粋なことが書いてあるwww

344:login:Penguin
07/09/29 03:19:25 Ao0+HlwR
openipmiの日本語プログラミング
マないかな?

345:login:Penguin
07/09/29 23:45:42 KUrKiugz
iptables を使用してトランスペアレントプロキシを作成しようとしています。
ポート10000に届くすべてのあて先IPアドレスを自身宛に書き換えて受け取っています。

その状態で getsockopt()に SO_ORIGINAL_DSTを与えると本来のあて先アドレスがわかるということで試していますが上手くいきません。
ENOPROTOOPT : 指定された層(level)にはこのオプションは存在しない
というエラーが返されます。

どのように解決すれば良いかわからず投稿させていただきました。
アドバイスがございましたらよろしくお願いします。

環境
fedoracore6 2.6.18-1.2798.fc6xen
gcc 4.1.1

-----------------------------一部抜粋-----------------------------------
int sock;
socklen_t len;
struct sockaddr_in addr0,orig_dst;

addr0.sin_family = AF_INET;
addr0.sin_port = htons(10000);
addr0.sin_addr.s_addr = htonl(INADDR_ANY);

sock = socket(AF_INET,SOCK_DGRAM,0);
bind(sock,(struct sockaddr *)&addr0,(socklen_t)sizeof(addr0));

len = (socklen_t)sizeof(orig_dst);

if(getsockopt(sock,SOL_IP,SO_ORIGINAL_DST,(struct sockaddr *)&orig_dst,(socklen_t *)&len)){
perror("getsockopt");
}
-------------------------------------------------------------------------

346:login:Penguin
07/09/30 00:11:06 JTctf1Ko
>>345
いくらくれる?

347:login:Penguin
07/09/30 09:27:43 mXOCWJ6v
>>346
アホか。

348:login:Penguin
07/09/30 18:32:05 cTP/1hI9
つ I ホラ、ダイジニツカウンダゾ

349:login:Penguin
07/10/01 00:56:00 kZSHZlgP
(´,∀`)ゴチソウサマ
>>345
SOCK_DGRAMじゃなくてSOCK_STREAMだとどうなんだろう?

350:login:Penguin
07/10/01 14:29:09 WPD1ZzVS
>>349
それかもしれませんね。
試す環境が無くなってしまったので出来ませんが・・・
connectされたソケットじゃないと取れないとか?
どうやって取ってるかわからないから何ともいえないけど・・・。
ありがごうございました。
良回答 10pt


351:login:Penguin
07/10/02 17:43:12 pFIeRD5Z
>>345
この質問はnetfilter-develにたまーに来る(1年に1回位)。
で、回答は SO_ORIGINAL_DST がサポートされているのはIPv4のTCPのみ。

どーしてもっていうことなら、もはやcacheにしか残ってないこのパッチを参考にするこった。
URLリンク(web.archive.org)

このパッチ相当の機能は、2007年現在まだマージされてないはず。

352:login:Penguin
07/10/02 23:15:16 TateldD6
あのーオドオドオド

あのーー2socket QuadCore Xeon
SNMPカーネル環境下でgettimeofday()すると
時間がびみょうにずれて困るのですが

どうすればいいのですか?



353:login:Penguin
07/10/02 23:17:15 OCvX4Zeq
>>352
kernelのバージョンとarchは?

354:login:Penguin
07/10/02 23:37:43 TateldD6
kernlは2.4.24と2.6.20です

debianで動けばOKです

355:login:Penguin
07/10/02 23:40:33 OCvX4Zeq
>>354
ずれるというのは時間が戻るということ?
最新のカーネルを使ってみれば?

古いので動かしたかったら、debianのBTSに突っ込んでみたら?

356:login:Penguin
07/10/02 23:46:34 TateldD6
>>355
そうですねー。
こうゆうのって自分で実装するのは難しいのでしょうかね?

357:login:Penguin
07/10/02 23:57:38 OCvX4Zeq
>>356
CPU1個にすればいいじゃね?

358:login:Penguin
07/10/03 08:55:17 mGA09CPb
>>352
そういう現象は聞いたことがない。貴方のコードに問題があるかもしれない。
どういうプログラムなのか、コードと実行結果を貼るなりしないと何とも言えないな。

359:login:Penguin
07/10/04 00:38:47 BHffRC4x
同一の名前で、ちょっとバージョンの違う
/usr/lib/xxx.soと/opt/dev/xxx.so

があるとして、絶対/usr/lib/xxx.soを使わずに
/opt/dev/xxx.soを使うようにコンパイルすること
ってできるでしょうか。

libcとか今組込み用に作ってるのですがどうにも
/usr/libのほうよみにいっているようで....

360:login:Penguin
07/10/04 00:40:34 0WRnyS6M
>>359
LD_LIBRARTY_PATHだっけか。

361:login:Penguin
07/10/04 00:45:16 BHffRC4x
>>360
それでいけますよね?

前任者がDQNみたいで

#define printf xxx_printf

とかずらーっと定義して
/dev/xxx..soを必ず使うように
#defineするとか意味不明な
ことしてて困惑しています。

ビルドも独自の.sファイル用意して
アドレスに直にバインドするとか
意味不明なことをしています

362:login:Penguin
07/10/04 00:57:37 hH9ei5GL
>>359
リンク時にバイナリにライブラリ検索パスを埋め込むために、
ld 実行時にLD_RUN_PATH を設定するか、-rpath オプションを
付けてリンクする。

LD_LIBRARY_PATHは、バイナリビルド環境と実行環境の差を
埋める時のみに使うべきかと思う。

363:login:Penguin
07/10/04 01:15:11 BHffRC4x
>>362
わたしもそう思うのですが

でもなんで

#define printf xxx_printf
なんてしたんだろう。
コード汚くなって意味ないと思うんだけどな...
こんなことする馬鹿他に見たことあるって
人いますか?明日そいつを血祭りにあげようと
思ってます。

364:login:Penguin
07/10/04 02:03:36 PKHRa3Ub
おまえさんよりは前任者の方が詳しい鴨よ。
もちっとkwsk書いてみたら?

365:login:Penguin
07/10/04 03:55:40 Lja62WFk
>>351
おそくなりましたがありがとうorz

366:login:Penguin
07/10/04 03:57:32 2YWUx8wh
まず理由を聞くべきだろ?

367:login:Penguin
07/10/04 10:22:53 SX6Gg+w/
組み込み用ならそれなりの理由があるのかもしれないような。

368:login:Penguin
07/10/04 21:48:51 BHffRC4x
理由を聞いたが-rpathを知らないから
そうやったって自供しました。

もう直後にイラっときたので
廃材詰めるダンボールにブン殴って
のしてつめてやりました。

半日ぐらいノビてたなw



369:login:Penguin
07/10/04 22:21:52 NmqYv4MX
暴力はいけません

370:login:Penguin
07/10/04 23:57:03 kujiByn/
組み込みでLinuxなのにlibc自作って何か新鮮

371:login:Penguin
07/10/05 00:54:03 RuBV1DrC
Upstreamに流すつもりのFIXコードを書いてテストしておkぽかったんだが、
なんかしらないがそのままゲームにはまってしまって疲れて寝た。
次の日、他の人がパッチをコミットしていた時の悔しさ。

372:login:Penguin
07/10/06 02:25:21 jz11x7Hd
汎用DMAドライバってどっかに
ないかなぁ

CPU使わないでデータコピーしたい

373:login:Penguin
07/10/09 23:39:51 D7LghPSZ
カーネル2.4にvsyscallのgettimeofdayを
移植したいんだけど

いい情報ないかな?最悪ドライバモジュールで
実装でもいい

374:login:Penguin
07/10/10 23:40:45 MaiKO5Xh
Linuxで作成したファイルをWindowsに移すにはどうしたらいいんですか?

375:login:Penguin
07/10/10 23:58:52 wcdf1KNh
ftp

376:login:Penguin
07/10/11 00:10:18 IhTCaNfQ
od -x filename | lessしたあと

windows側で1バイトずつ
手打ちすればいいよ

377:login:Penguin
07/10/11 00:14:30 0rD2It5e
>>376
メモ帳でやってみました。
なんかファイルサイズが16倍になったんですが、ホントにこれ使えるんでしょうか・・・。

378:login:Penguin
07/10/11 01:03:35 XbMVm2Iq
>>376
おにー

379:login:Penguin
07/10/11 01:29:29 nRNlKb1D
>>377
なんで16倍?

380:login:Penguin
07/10/11 03:52:22 yX6O/zNE
tcpdumpみたいなものをカーネルモジュールで書いているんですが、
tcpやudpのデータ部分を取得するにはどうやったらいいのでしょうか。

sk_buff->nh.iph->protocol
でプロトコルの種類はわかるのですが、実際のデータ部の取得方法が
いまいちわからなくて・・・。

どなたかわかる方よろしくお願いいたします。

381:login:Penguin
07/10/11 16:06:54 q6R8bHpk
>>377 Bz使えよ

382:login:Penguin
07/10/13 21:50:16 Zr5sYmS5
URLリンク(kernelbook.sourceforge.net)

383:login:Penguin
07/10/15 21:09:43 LCPtRnTv
カーネルソースはあるのにヘッダーsがないばやいで
ソースからヘッダーってできないですか
っていうかソースがあればヘッダーはいらないと思ってた!
なんでなん?

384:login:Penguin
07/10/15 23:41:51 XG6Zr9VJ
>>383
インクルードするところを
/usr/includeとかになってるところを
/usr/src/linux/includeとかにするところでいいんじゃね?
-Iとかで指定するところだと思うよ

385:login:Penguin
07/11/01 21:34:43 OFz7RgOT
ipmiのライブラリってどれもつかえねーな

全然関係ないけど、montavistaの連中のコードってきもくね?
CもC++もどれもまともにかけない糞が多すぎる。

それについてこっちは金払ってるのに問い合わせすると
仕様ですwだってさ

あそこのエンジニアはSCOよりひどい

386:句読点打てないバカをサマージャンボする俺 ◆1xdL.Dyf.I
07/11/03 11:25:48 4iXGn396
>>385


387:login:Penguin
07/11/09 14:05:06 Aq/ZR00i
メモリの使い方について質問。

システムメモリ領域は負のアドレスというのを読んだのですが、
連続した次の領域を読む場合、正負どちらの方向に進めばいいのでしょうか?
例えば-521568100の次の領域は、-521568099?それとも-521568101?

388:login:Penguin
07/11/09 14:45:29 muGJS6N4

-3 -2 -1 0 1 2 3

- +

389:387
07/11/09 15:12:03 Aq/ZR00i
>>388
なるほど〜。
ありがとうございました。

390:login:Penguin
07/11/10 01:16:39 tSMAg/81
LD_PRELOADで関数フックしたあと、もとの関数呼ぶ方法ってありますか?

void hoge()
{
hoge(); // <- もとのhoge関数を呼び出したい
}

391:login:Penguin
07/11/10 02:58:50 RN+zA3HO
>>390
dlopen, dlsym


392:login:Penguin
07/11/11 12:34:41 jhqVcqNv
mono develop使ってるヤシいる?

393:login:Penguin
07/11/11 19:49:41 n7+Lb81h
>>390
dlsymとRTLD_NEXTでググればわかるとおもうよ。
>>391
dlopenは不要

394:login:Penguin
07/11/12 03:27:53 V6ygCzcx
今linux security module(lsm)の勉強のために、
root_plug.cを改造して試行錯誤してるんですけど、
これって改造する度に、
毎回全てのソースをコンパイルをしなければいけないんでしょうか?


395:login:Penguin
07/11/12 03:29:28 5hFKzEaG
makeでやれば関係ないソースは以前作ったオブジェクトそのまま使ってくれるだろ

396:login:Penguin
07/11/12 03:34:17 V6ygCzcx
>>395
確かにそうなんですけど、
なんとなく気持ち悪くて、
毎回新しくオブジェクトを作りなおしてました。
でもそうしなくても問題ないということですね。
ありがとうございました。

397:login:Penguin
07/11/12 04:11:37 CZeG29nh
,`,(+Φy〆),`,
    ‘オソロシキ ゲンゴダナ…

398:login:Penguin
07/11/12 05:40:50 PgGOtZpU
>>391
>>393
dlsym( RTLD_NEXT , "function" )
でできました。
ありがとうございます

399:login:Penguin
07/11/14 03:20:29 LtZiY/oO
Linux上でWindowsのネイティブバイナリは吐けますか?

400:login:Penguin
07/11/14 03:26:37 d8LODZS2
>>399
cat explorer.exe > new_explorer.exe

401:login:Penguin
07/11/14 08:14:07 1nX1kzlD
mingwのクロスコンパイラが使えるよ。Debianならapt-get install mingw32で。


402:login:Penguin
07/11/19 09:16:47 y8uScUHY
ありがとうございます

403:login:Penguin
07/11/27 09:45:49 A2SYKSWK
xxgdbでpopen()をトレースすると
[New Cannot find thread 2049: invalid thread handle
と表示されて止まってしまうのだがこれって仕様?

404:login:Penguin
07/11/28 00:05:12 7Ks9DXGS
>>403
仕様

405:403
07/11/29 00:55:49 jIID4fY+
>>404
レスありがとう。
system()かexecl()系使うしかないのかしら・・・

406:login:Penguin
07/12/03 03:31:14 ACH4D/bz
opendir(3)の実装はどこにあるんでしょうか?
glibcのdirent/opendir.cを見ると

DIR*
__opendir (const char *name)
{
 __set_errno (ENOSYS);
 return NULL;
}

などと書いてあって行き詰ってしまいました。

407:login:Penguin
07/12/03 04:25:46 hZn7k5Pb
>>406
OSはLinuxだよね?

408:login:Penguin
07/12/03 04:29:01 hZn7k5Pb
glibc-2.x.x/sysdeps/unix/opendir.c だと思われる。

409:406
07/12/03 12:14:14 tGDLCTrZ
>>408 ありがとうございます。

410:login:Penguin
07/12/08 00:56:20 Ypv55KO5
syslogのバッファの中身を設定ファイルでは
なく、作成したプログラムで行いたいのですが
どうすればよいの?



411:login:Penguin
07/12/08 01:09:58 3wxXE3Np
emacs code browserをつかいこなしてる人いませんか?

python2.4とpython2.5が両方はいってる環境で
boost.pythonでc++と連携させると実行時に
「なにかがない」
というエラーが頻発しないですか?



412:login:Penguin
07/12/08 02:36:59 AOgHL0gM
>>410
syslog(2)かsyslog(3)のどっちだよ。
それより何がしたいの?

413:login:Penguin
07/12/08 08:36:18 Ypv55KO5
>>412
syslogを監視したいと考えています。
swatchみたいな仕組みを作りたいなぁと


414:login:Penguin
07/12/09 19:30:32 kFipn9r2
Linuxで組込み機器の開発をしています。CPUはMIPS及びx86で、カーネルは2.6、swap領域は用意していません。
RAMは128MBです。下記状況で悩んでいます。

あるプロセスが大きめ(数十MB)のファイルを、読み込み専用(PROT_READのみ)でmmapし、その後そのファイル
を一通り読み込み、理由は不明なのですが、その後munmapせずに長期間mmapしたままにしています。

この状態でもし物理メモリ(free page)が足りなくなってきたら、ファイルのreadonly mmapに使用されていた
物理メモリは他の用途に使うために回収されるでしょうか?

カーネルの当該処理を行なう関数名だけでもかまいませんので、おしえてください。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4040日前に更新/218 KB
担当:undef