トップページ⇒linux
1001コメント296KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2007/12/02(日) 16:53:13ID:v60lx45q
●前スレ
【Linux】カーネル総合3【Kernel】
ttp://pc11.2ch.net/test/read.cgi/linux/1146235963/
0685login:Penguin2009/05/31(日) 22:54:30ID:OVItpWgv
voyger
は地上にはなく宇宙遥彼方
0686login:Penguin2009/06/01(月) 15:48:42ID:Due7hYNZ
>>684
この前、ついにあきらめて完全に削除されていたような・・・

やっと、サブアーキがなくなったーーとIngo大喜び。ネコまっしぐら
0687login:Penguin2009/06/05(金) 00:20:12ID:qIsowSsx
5月版 Firefoxのプチフリーズ問題から始まった大論争
http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch05a.html
それはFirefoxのプチフリーズ問題から始まった
さらばorderedモード、ext3のデフォルトがwritebackモードに変更
お前のページを共有する、抵抗は無意味だ――KSM
0688login:Penguin2009/06/06(土) 00:33:50ID:zT5/Y8AY
_ □□    _      ___、、、
  //_   [][]//   ,,-―''':::::::::::::::ヽヾヽ':::::/
//  \\  //  /::::::::::::::::::::::::::::::i l | l i:::::::ミ  2150edc6c5cf00f7adb54538b9ea2a3e9cedca3fを
 ̄      ̄   ̄/ /:::::::::,,,-‐,/i/`''' ̄ ̄ ̄ `i::;|  
―`―--^--、__   /:::::::::=ソ   / ヽ、 /   ,,|/  commitしたのは 
/f ),fヽ,-、     ノ  | 三 i <ニ`-, ノ /、-ニニ' 」')    
  i'/ /^~i f-iノ   |三 彡 t ̄ 。` ソ ハ_゙'、 ̄。,フ | )  誰だぁっ!!
,,,     l'ノ j    ノ::i⌒ヽ;;|   ̄ ̄ / _ヽ、 ̄  ゙i )  
  ` '' -  /    ノ::| ヽミ   `_,(_  i\_  `i ヽ、 ∧ ∧ ∧ ∧
     ///  |:::| ( ミ   / __ニ'__`i |  Y  Y Y Y Y
   ,-"        ,|:::ヽ  ミ   /-───―-`l  |  //     |
   |  //    l::::::::l\    ||||||||||||||||||||||/  |     // |
  /     ____.|:::::::|    、  `ー-―――┴ /    __,,..-'|
 /゙ー、,-―'''XXXX `''l::,/|    ー- 、__ ̄_,,-"、_,-''XXXXX |
/XX/ XXXXXXXXXX| |         _,  /ノXXXXXXXXXX|

http://www.linuxhq.com/kernel/v2.6/29/fs/ext4/super.c
noextentsが消えた
0689login:Penguin2009/06/06(土) 01:06:36ID:s5ChGVIv
犯人はヤス
0690login:Penguin2009/06/06(土) 10:30:27ID:llsk3snN
現実問題、noextents なんて必要か?
Jan Karaがext3に戻れなくなるとか反対していた気もするが
0691login:Penguin2009/06/06(土) 11:28:46ID:llsk3snN
>>688
マージコミットの見方を教えておく

git show 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f

すると

commit 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f
Merge: cd76469... 4b90567...
Author: Linus Torvalds <[email protected]>
Date: Thu Jan 8 17:14:59 2009 -0800

というヘッダが表示される。このMerge行重要。
んで、これをコピー&ペーストして

git log -p cd76469..4b90567

と打つ。んで、noextentsで検索すると犯人はTed Tso であることが分かる。すでに知っていたらすまん

0692login:Penguin2009/06/06(土) 13:00:57ID:/VR1XxAT
>>690
イラン
0693login:Penguin2009/06/10(水) 23:39:02ID:fj4chPWL
4プロセス間をIPCメッセージキューでデータ転送しているのですが
もっと高速にする方法ご存知ないでしょうか
0694login:Penguin2009/06/11(木) 08:38:38ID:EilXbBGo
POSIX message queueってどうなの?
0695login:Penguin2009/06/11(木) 09:42:43ID:vwI/yHy2
>>693
共有メモリはどう?
0696login:Penguin2009/06/11(木) 09:51:14ID:uaZByA8O
>>693
unix domain socketで転送
0697login:Penguin2009/06/11(木) 13:38:06ID:LDTPlndN
カーネルのバージョン付けは、誰が決めるの?
欧州議会みたいにいろんな国選出の技術者の討論で決めるのですか?
0698login:Penguin2009/06/11(木) 17:05:19ID:2biNdNJj
Linus
0699login:Penguin2009/06/11(木) 21:09:05ID:ZSHW+6x2
元老院だよ
0700login:Penguin2009/06/11(木) 21:17:50ID:qTTLr2eL
RedHatからUbuntuを薦めている300人委員会に決まってるだろ
0701login:Penguin2009/06/11(木) 21:20:21ID:LDTPlndN
リナクス故、Java the Hatがカーネルの命名をするか、、、初めて知ったよ。
勉強になった、ありがとう。
0702login:Penguin2009/06/11(木) 23:12:43ID:LBj0DDNX
IPCとPosixのメッセージキューだと
どちらがいいんですかね?

POSIXの方が速いような記述は見られるけど
IPCとの比較が見てみたい
0703login:Penguin2009/06/12(金) 18:52:44ID:62lG4Kk/
Linuxカーネルのスカトロが入ったっていう噂は本当ですか?
そうですか・・・

Linux オタワ
0704login:Penguin2009/06/12(金) 21:02:37ID:j0w8fT+r
>>703
原田知世がスカトロ好きってそんなに有名だっけw
それにしても本当にひどい名前だよ、まったく
0705login:Penguin2009/06/13(土) 00:16:04ID:WC1bTh8Y
>>704
ちょw
そんな実名だしちゃ、まずいっしょ

いずれにせよ、2.26.30 以降はスカトロLinux なんだなー
0706login:Penguin2009/06/13(土) 02:01:01ID:ejf5oGI/
>>687
こういう身近な話だと、わかりやすい
ほんとおもしろいわ
0707login:Penguin2009/06/13(土) 11:13:38ID:xcULKyPS
2.6系カーネルに独自ドライバを組み込もうとしています。
ググったらmake menuconfigすると表示されるメニューは
ドライバソースの各フォルダにあるKconfigとMakefileを
編集すればできそうなことは分かったのですが、Kconfigに
カスタムドライバを追加する方法を分かりやすく解説した
ページがあれば教えていただけないでしょうか。

下記のようにデバイスドライバのツリーを追加したいのですが
KconfigとMakefileを編集した後、make menuconfigを
実行しても、新しくドライバツリーに項目が増えてくれなくて
悩んでいます。
Device Drivers  --->
  Hoge device drivers  --->
    <M> Hoge hoge device

宜しくお願いします。
0708login:Penguin2009/06/13(土) 11:48:10ID:ycnhXlHO
論よりソース
実際に項目を追加してるcommitの差分を見ればいい
0709login:Penguin2009/06/13(土) 12:46:47ID:xcULKyPS
>>708
レスありがとうございます。
ソースは見ているのですが、Device Drivers項目の中に、新しく
Hoge Driversというサブ項目を追加しているような例が見つかりません。
Misc devices項目など同一階層に新規項目を作りたいのですが・・・
下記のようにしてもDevice Drivers内に Hoge device drivers が
表示されない状況です。

drivers/Kconfigに、 source "drivers/hoge/Kconfig" を追加

drivers/Makefileに、obj-y += hoge/ を追加

drivers/hoge/Kconfigに下記内容を記述
 menu "Hoge device drivers"
 config HOGE_TEST
  tristate "Hoge hoge device "
  default y
  help
   Hoge hoge device driver.
 endmenu

drivers/hoge/Makefileに下記内容を記述
 obj- := hoge.o # Dummy rule to force built-in.o to be made
0710login:Penguin2009/06/13(土) 15:11:15ID:ycnhXlHO
はて、特に間違っている部分は見当たらない・・・よう・・な・・・
元ファイルにtypoとかあったりしないよ・・・ね?

drivers/Makefile:
...
obj-y += hoge/

drivers/Kconfig:
...
source "drivers/hoge/Kconfig"

drivers/hoge/Makefile:
obj-$(CONFIG_HOGE_TEST) += hoge.o

drivers/hoge/Kconfig:
menu "Hoge device drivers"
config HOGE_TEST
 tristate "Hoge hoge device"
 default y
 help
  Hoge hoge device driver.
endmenu
0711login:Penguin2009/06/13(土) 23:08:37ID:anvVj87A
親メニューが depends on ついてるとかそういうオチじゃね?
もしくはメニューが Drivers/Char/Serial の奥底とかに埋まってる。

menuconfig 起動して HOGE_TEST を検索してみればわかると思うが。


つか、.config に #CONFIG_HOGE_TEST is not defined とか
入ってるかどうかは確認したのか?

0712login:Penguin2009/06/14(日) 07:23:59ID:5XYxUxKe
モノリシック
Solaris,HP-UX,AIX,Linux

マイクロ
Windows,Mac
0713login:Penguin2009/06/17(水) 12:47:13ID:7xjbwVQk
xhciが(linux-2.6に)キター
0714login:Penguin2009/06/17(水) 23:33:34ID:APJbtoA3
>>712
Windowsはマイクロカーネルではない。
http://www.cs.vu.nl/~ast/reliable-os/
0715login:Penguin2009/06/18(木) 00:21:50ID:jUFA0OA6
Mac OS Xもマイクロカーネルではない
0716login:Penguin2009/06/18(木) 00:45:49ID:ydzluLGA
>>715
いや、>>714のリンクを見れば分かるが、Tanenbaumはマイクロカーネル扱いしてる。
FreeBSDの各種機能がカーネル空間にあるのはco-locationという技術であって、
それでもメッセージ通信をしているのに変わりはないのでマイクロカーネル扱い。
0717login:Penguin2009/06/18(木) 01:05:41ID:K/QPtrIN
tkh
0718login:Penguin2009/06/18(木) 01:09:48ID:K/QPtrIN
FreeBSDをマイクロカーネルと主張する人は珍しい
0719login:Penguin2009/06/18(木) 01:17:54ID:ydzluLGA
>>718
どこにそんな奴がいるんだ?
0720login:Penguin2009/06/18(木) 08:08:03ID:ROmx8PKu
>>714
Windowsはマイクロカーネルのほうに近いんじゃない?
良くも悪くも。
0721login:Penguin2009/06/18(木) 08:34:42ID:P5FnQwjc
2.6.31でまたbtrfsのフォーマットが変わったらしいね。
0722login:Penguin2009/06/18(木) 12:58:50ID:ROmx8PKu
>>721
なにしろ仕様書に「まだ変わる」と書いてあるんだから
まだまだ何回も変わるだろうな。
0723login:Penguin2009/06/18(木) 21:36:02ID:/7hyuS6j
単純に、モノシリック・マイクロで分けられる時代ではないでしょ
極端にしたらデメリットが馬鹿にならなくなるから
0724login:Penguin2009/06/18(木) 22:24:57ID:kG3j8SQv
モノシリック?

語源(モノリス=1つの岩)と意味を知ってれば間違えようがないのにね。
0725login:Penguin2009/06/19(金) 00:53:23ID:pQJhBuk1
つい最近どっかで全く同じ会話を見かけたなぁ
スラドだったか
0726login:Penguin2009/06/19(金) 01:25:37ID:jIhK5NOW
いぢめる?
0727login:Penguin2009/06/19(金) 07:00:15ID:KkOlQ/pH
>>724
語源は例の「十字軍の時代に」って奴だ
0728login:Penguin2009/06/19(金) 10:28:12ID:pDdjOaAM
「モノシリック」は「モノシリアン(mono-syrian)のような」という意味であり、
十二世紀半ばに西欧にて発生した。
「モノシリアン」とは第2回以降の十字軍遠征を阻む、シリア(聖書でアラムの地とされる、
聖地エルサレムを含む西アジアの地中海に面する一帯の地域)の回教徒達(Syrian)の
結束したさまを指す十字軍内部で用いられていた隠語であり、十字軍衰退とともに
一般人への回教文化の流入とともに広がった。
現在、「モノシリック」は一つに統一され強固にまとまったさまを指す言葉として
用いられている。

例えばモノシリック・カーネルとは一枚岩のような丈夫なカーネルということである。
0729login:Penguin2009/06/19(金) 14:24:33ID:pQJhBuk1
へー
728さんって物知りなんですね
0730login:Penguin2009/06/19(金) 14:49:17ID:9Fvtvp5W
物知りックwww
0731login:Penguin2009/06/19(金) 17:54:48ID:ucgmQt3s
なつかしすぎて吹いたw
0732login:Penguin2009/06/20(土) 14:13:18ID:scxDjYjs
>>730
トラ技5月号あたりの
新入社員向け特集で毎年出てくる。
0733login:Penguin2009/06/20(土) 20:40:19ID:MZ+4ddd0
DaveM が page allocation failureのメッセージうざいから、warning出すのやめようぜ。って言ってるけど、使ってる奴ほんとにいないの?
0734login:Penguin2009/06/21(日) 23:29:12ID:VQh+3f2H
カーネル的にはQPI接続のNUMAなi7 Xeon構成には対応してるの?
0735login:Penguin2009/06/21(日) 23:34:37ID:GKm9ryra
opteronのころから対応してるでしょ
0736login:Penguin2009/06/22(月) 00:05:07ID:gHVjWzz2
>>735
CONFIG_NUMA: │ Enable NUMA (Non Uniform Memory Access) support.
│ The kernel will try to allocate memory used by a CPU on the
│ local memory controller of the CPU and add some more
│ NUMA awareness to the kernel.
│ For 64-bit this is recommended if the system is Intel Core i7
│ (or later), AMD Opteron, or EM64T NUMA.

そうみたい。S5500HCV買ってくる。
0737login:Penguin2009/07/01(水) 21:41:05ID:RjIEoEza
6月版 君は知っているか? 2.6.30の変更内容を
http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch06a.html
ファイルシステム周りの追加
 日本発のログ構造化ファイルシステム「NILFS」
 EXOFS
 POHMELFS
 FS-Cache
 relatimeがデフォルトでONに
セキュリティ周りの強化
 TOMOYO
 IMA
ネットワーク周りの強化
 Reliable Datagram Sockets(RDS)
 IEEE 802.11w(wireless management frame protection support)
そのほか、カーネルコアの変更
 カーネルイメージを、従来のGZIPだけでなく、LZMA/BZIP2でも圧縮できるようになりました。LZMAは伸長時間の速さと高圧縮率を兼ね備えており、期待が持てます
 カーネルのzImageがとうとうサポートされなくなりました。bzImageで困りませんからね
 x86の最後のサブアーキテクチャ「Voyager」のサポートコードが削除され、x86 archからサブアーキテクチャ対応コードが削除されました。「これでメンテが簡単になる」と、x86開発者が泣いたとか
 adaptive spinning mutexがマージされました。もはやmutexはロック競合時にスリープするとは限りません
0738login:Penguin2009/07/01(水) 23:52:13ID:xu0kECu7
>>737
zImage無くなったのはx86だけじゃねえのか?

まあどうでもいいことだが。
0739login:Penguin2009/07/02(木) 14:14:02ID:/ScnEAS7
>>738
ほかのアーキだと元々 make zImage が存在しないような
0740login:Penguin2009/07/02(木) 14:27:45ID:/ScnEAS7
ねえ、kernel watch以外にカーネルの情報が読める所ってないの?
0741login:Penguin2009/07/02(木) 14:34:11ID:7A/mbtL3
>>739
べつに必須の機能じゃないので無い方が多いかもしれんが、
使えるのもある。

さすがにbzImageはx86だけだが。
0742login:Penguin2009/07/02(木) 14:34:12ID:JUQuwRcW
>>740
つ http://www.kernelnewbies.org/
0743login:Penguin2009/07/02(木) 18:55:26ID:0KAGXtNr
フレームバッファを使ってダブルバッファのような目的で複数ページを切り替えて
表示をしたいんですが、ioctlとか使って実現する方法ってありますか?
0744login:Penguin2009/07/12(日) 19:00:16ID:Hd0P+JHm
>>743
DirectFBあたりは、そうやって実装してるよね
0745login:Penguin2009/07/22(水) 03:26:29ID:vGwEU6X3
kernel watch の執筆者が、kernel勉強会で講演してるじゃん
YLUG 第97回カーネル読書会 TOMOYO Linuxメインライン化記念勉強会
http://zoome.jp/koedoyoshida/diary/5/
0746login:Penguin2009/07/22(水) 23:07:37ID:Ihq5K6Dd
米Microsoft、「Hyper-V」LinuxドライバをカーネルコミュニティにGPLv2で提供
http://sourceforge.jp/magazine/09/07/21/0342227
0747login:Penguin2009/07/23(木) 18:18:38ID:7uKirgZE
ここで一句

カーネルは
テスト無いので
レガシーだ
0748login:Penguin2009/07/23(木) 19:13:55ID:P+5ig7CA
レガシー【legacy】
(1)遺産。遺物。
(2)コンピューター分野で,旧世代の技術に基づいたハードウエア・ソフトウエアなどの総称。
0749login:Penguin2009/07/23(木) 23:43:17ID:ndnD86SS
ttp://www.tdd-net.jp/2009/07/codezine-65bd.html
0750login:Penguin2009/07/24(金) 05:29:49ID:0MjShUNk
ネタがすべってるー
0751login:Penguin2009/07/24(金) 22:00:45ID:qlwn44yy
>>747
世界がテストベッド。
テスト手順は人間の本能に刻まれている。
100万個の目玉は1万ページのテスト手順に勝る。

・・・とか信じてそうだ。
実は誰もテストせず数年経過とかあるから怖い。Signed-off-by,
Reviewed-Byに加えて

 Tested-by:<tester-sig>
 Tested-with: <URL-to-testcode>

とか欲しくなるぞ。
0752login:Penguin2009/07/25(土) 12:06:02ID:4Qinpv4Z
>>751
Tested-by:は昔から使われてるぞ。
0753login:Penguin2009/07/25(土) 12:52:25ID:3/suj8BZ
>>752
じゃなくて、commitされるものはどれもテストされるべき
って言いたいんじゃない?
0754login:Penguin2009/07/25(土) 15:16:29ID:wTyfgRHd
テストコードが無いのはレガシーコードだと言いたいのでした。

ただ、ドライバとかはむずかしいのかもとは思った。
0755login:Penguin2009/07/26(日) 13:22:45ID:FmTSWpi4
Fedora固有の問題なのかもしれないが、kernelの挙動のような気もするので、ここで質問。

/proc/uptimeに入っている値の意味ってkernelのバージョンによって変わりうるのだろうか?
最近、Fedora11 x86-64 (kernelは2.6.29系)をインストールしたPCにおいて、/proc/uptimeの
値は稼働時間(秒)+謎の値(稼働時間より妙に小さい)になっている感じなのだが、
Feora11を入れるまでは稼働時間(秒)+アイドル時間(秒)だった。manの説明を見る限り、
以前の挙動の方が正しいように見える。

ちなみに、稼働しているPCの負荷はかなり低くてアイドル時間がほとんどを占めているので、
同じフォーマットの値だとは考えにくい。

何か仕様変更があったのだろうか?

0756login:Penguin2009/07/26(日) 17:47:58ID:F499QACg
>>755
コードを読む限り、idleを表示しようとしてるな。うちのマシン(mainlineの最新)ではuptimeは以下のようになっており、
妥当な値。

で、最近デカイ修正ないから、regressionに心当たりないなぁ

/proc/uptime
----------------------
2295257.97 1218617.97

CPUを100%つかうプロセスを1分動かすと、2つの値はそれぞれ、どれだけ動く?
0757login:Penguin2009/07/26(日) 18:10:16ID:F499QACg
>>754
LKML読んでて、テストコードでなんとかなりそうな問題って少ないんだが、具体的にはどうよう状況を想定してる?

例をあげる。
定期的にregressionする問題児機能として、cpu-hotplug, memory-hotplugがあるが、これは明らかに
開発者がテストできないのが問題。
かつ、CPUやメモリを挿抜できるマシンを見たこと無いと何に気をつけないといけないか、普通は一生知る機会がない。
カーネル内に普通にif 文入ってりゃカーネル勉強してれば自然と身につくけど、速度の兼ね合いで巧妙に if文が
入らないようにしてあるケースが多いので、コードを読んでいてもまず理解できん。

個人的な経験でいうと、ユニットテストが有効なのはアプリケーションレイヤだよ。テストってのは自分のもってる仮定が真か
否かを確認する作業なので、よく分からないハードの互換性のための機能とか、よく分からないアプリの互換性のための
機能とかは、テストできない。

それに加えて、性能のために、無理矢理ロックレスにしてる部分ってユニットテストすると、failureするよね。
でも人間は気づかないのでOK理論でまかり通ってる。
この「人間は気づかないはず」ってのはかなり曖昧な根拠なので、すごく予想外のワークロードで破綻したりする。
テスト不足が原因じゃなくて設計時の分析不足が根本なので、テストじゃ品質は上がらない

ちょっと、違う河岸の人の意見が聞きたくなったので、燃料投下ですよ
0758login:Penguin2009/07/26(日) 19:09:21ID:eLPutGUO
CPUのmockとかメモリのmockを作ってテストを書く
failするロジックを見つけたら必ずテストを追加する
0759login:Penguin2009/07/26(日) 19:10:20ID:eLPutGUO
とうっかり書いてしまったがそんなへんてこなmockを書くのは極めて難しいな
0760login:Penguin2009/07/26(日) 22:07:20ID:FmTSWpi4
>>756

stressをインストールして試してみた。CPUがデュアルコアなので各コアの負荷が100%になるようにしてみた。

[root@localhost stress-1.0.0]# uptime; cat /proc/uptime; stress -c 2 -t 60; cat /proc/uptime
21:58:50 up 1 day, 22:31, 2 users, load average: 0.44, 0.35, 0.14
167498.57 166.57
stress: info: [29421] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [29421] successful run completed in 60s
167558.58 166.57

[root@localhost stress-1.0.0]# uname -r
2.6.29.6-213.fc11.x86_64

稼働時間の方はちゃんと60秒分増えているけれど、2個目の値は変わらず・・・。
0761login:Penguin2009/07/26(日) 22:13:34ID:YbAk5UrG
ドライバ類って共通レイヤでのユニットテストがしやすそうなイメージあるけどなぁ。
ハードウェアエミュレータがあれば更に良し。
0762login:Penguin2009/07/27(月) 07:26:05ID:wJYxMPcL
具体的にはどうやってテストするの?
エミュレータなんかかました途端に、それは「エミュレータに対するテスト」
でしかなくなるし、ってかこの世のありとあらゆるデバイスの挙動の
あらゆるケースを実機通り(実機のバグ・不具合含めて)に正確にテスト
できるエミュレータとか、ちょっとありそうにない気がするが。
0763login:Penguin2009/07/28(火) 06:23:34ID:I6HFN565
>>760
ごめん、CPU100%ぶんまわしたら、当然idle時間は増えんわな。たぶん省電力関係が悪さをしていると思うので

1) cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
の結果を貼っておくれ

2) 同じディレクトリの scaling_governorをon_demandから(Fedoraならon_demandなんだよね?)、
performance に変更して1日放置してみて

これで直るなら、ただの表示ミスだから気にする必要はない。
0764login:Penguin2009/07/28(火) 06:37:10ID:I6HFN565
>>763
起動オプションで、 idle=poll もやってみて。C2/C3 stateに入るときの問題かもしれぬ。
0765login:Penguin2009/07/28(火) 21:24:21ID:gAPV/qCK
テストってそんなもんな気がするけど???
07667552009/07/28(火) 22:53:13ID:3fzUjTnx
>>764
レス感謝。

初めに報告した側のPC(以下PC1) はサーバ運用のため実験しにくいので、同じFedora11 x86_64版をインストールし、
同様の状況になっている別PC(以下PC2)で実験してみた。結果は以下のような感じだった。

[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
acpi-cpufreq
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand

ちなみにPC1だと
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
powernow-k8

で、PC2でカーネルオプションにidle=pollを追加して起動し、
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor してみた後は

[root@localhost ~]# cat /proc/uptime
1744.18 0.13

という感じで、残念ながら変化無し。

アイドル時間が検出できないこと以外は運用上の障害は特にないので、そのまま運用してもいいんだけれど
やっぱり気持ち悪いなぁ・・・。
0767login:Penguin2009/07/30(木) 00:16:00ID:+o444z33
ある特徴をもつパケットをIP層でフィルタリングするカーネルモジュール
を書きたいのですが、iptable_filter.cのipt_hook()とかを使って
できますかね?
0768login:Penguin2009/08/04(火) 17:34:45ID:Ahd4ZMYm
likely() とunlikely()  について詳しく解説していただけないでしょうか?どうしてこの処理が必要なのでしょうか?
0769login:Penguin2009/08/04(火) 18:05:10ID:jK3O5/wp
gcc + likely でぐぐれ
0770login:Penguin2009/08/05(水) 19:03:19ID:NmLViMJY
今時のx86って分岐ヒント・プリフィックスがあるんだね
0771login:Penguin2009/08/05(水) 22:52:05ID:c9kehUAX
今のgccは分岐prefixは生成しないと思うが。今のCPUの実装でいうと勝手に命令はprefetchされてるんだけど、
ジャンプ命令は飛び先が命令をfetch終わるまで分からない(当たり前だ)、だから、ジャンプしないほうに可能性が
高い処理を入れておくのが賢い。
確率が半々のif文だったら、飛び先を近くにしておくと、ちょっと先fetchでtakenもnot takenもフェッチされるので
お得だけど、確率が90%の時は残り10%はすんげえ遠くに追いやった方がお得。
よってunlikelyで通らないとヒントづけされたブロックは関数の最後の方に寄せられる。likelyはその逆。



0772login:Penguin2009/08/05(水) 23:24:28ID:6HIRSosI
確か今時のプロセッサの分岐予測は
初見の分岐を見たら、その分岐が手前方向だったら分岐すると予測し
先方向だったら分岐しないと予測すると思ったけど。

理由はもちろん、ループというのがそういう形に作られているため。
(先方向の理由は知らないが、たぶん統計的なものだろう)

で、当然、最適化コンパイラは、
それ(分岐頻度の想定)にあわせた分岐/非分岐のブロック配置をする。
0773login:Penguin2009/08/06(木) 00:06:36ID:vQt8Mjn6
>>772
実行プロファイルとか取ってるのかと思ったら、あんま賢くないんだね。
0774login:Penguin2009/08/06(木) 13:59:03ID:7rlUfYmR
>>773
プロファイルとってるけど、数に限りがあるから、テーブルにのってないジャンプについては
typicalなコンパイラのクセからポリシーを決めるんだわさ
0775login:Penguin2009/08/06(木) 22:56:30ID:aRQrUWVt
>>774
Open64でビルドしたカーネルそんなことしてるように見えないけど
0776login:Penguin2009/08/06(木) 23:12:21ID:WIwoXzLG
「プロファイルをとっている」のはCPUだぞ?
理解した上で書いてる?
そりゃ、カーネルスレでハードの話題はスレ違いだが、話の流れってものがあるから。

このへんみれば、おおよその技術的なことはわかるんじゃないかね。
http://ja.wikipedia.org/wiki/%E5%88%86%E5%B2%90%E4%BA%88%E6%B8%AC
0777login:Penguin2009/08/07(金) 17:00:34ID:Pvjb3Cze
カーネルのヘッダファイルを見るとenumと全く同じ名前でdefineし直していて単なる無駄に見えるのですがマイナーなコンパイラのための対策か何かなのでしょうか?
0778login:Penguin2009/08/07(金) 17:11:24ID:tHF5HJWh
具体的に
07797772009/08/07(金) 17:43:38ID:Pvjb3Cze
>>778
僕にだよね...
例えば、linux/rtnetlin.hだと↓

enum {
RTM_BASE = 16,
#define RTM_BASE RTM_BASE

RTM_NEWLINK = 16,
#define RTM_NEWLINK RTM_NEWLINK
0780login:Penguin2009/08/07(金) 18:13:53ID:tHF5HJWh
>>779
型チェックが欲しいときと要らん時があるからだろ。
07817772009/08/07(金) 18:45:03ID:Pvjb3Cze
>>780
プリプロセッサ通ったらやっぱりenumだと思うんだけど...?
0782login:Penguin2009/08/07(金) 18:45:15ID:ZCbtwiUW
型チェックはプリプロセッサではやらないと思うんだけど。
0783login:Penguin2009/08/07(金) 19:01:22ID:Pvjb3Cze
だから、
わざわざenumとdefineと定義してもプリプロセッサを通ったらenumだけになっちゃう
で、コンパイラではenumの定義しか見えないんだから型チェックがしたい/したくないとか制御できてないように思うんですが...
0784login:Penguin2009/08/07(金) 19:08:38ID:KtOPT9+5
例えばglibcのstdio.hの中に以下のような一節がある

/* Standard streams. */
extern struct _IO_FILE *stdin; /* Standard input stream. */
extern struct _IO_FILE *stdout; /* Standard output stream. */
extern struct _IO_FILE *stderr; /* Standard error output stream. */
#ifdef __STDC__
/* C89/C99 say they're macros. Make them happy. */
#define stdin stdin
#define stdout stdout
#define stderr stderr
#endif

>>779 もこの手の要請のせいではないかと予想
■ このスレッドは過去ログ倉庫に格納されています