なんだそうな
http://www.yomiuri.co.jp/world/news/20081231-OYT1T00348.htm
おまえは何を言っているんだ(^^;
http://www.yomiuri.co.jp/world/news/20081231-OYT1T00348.htm
「髪に風 何年たっても風はある 残念ながら髪はない」(2008年9月2日の一句)
おまえは何を言っているんだ(^^;
- 関連記事
-
- 櫻井翔から年賀状北 (2009/01/01)
- ベルギー新首相は無手勝流“俳人” (2008/12/31)
- 会社が寒すぎる (2008/12/27)
Nickが5-6年前に仕込んだバグで、high order allocationがfragmentationで失敗すると、kswapdが無限ループになる。というバグがあって、それをバグ報告してきた人がいたんだが、修正パッチを作ったりテストしたりと手伝っていたら、彼からReviewed-byもらってしまったよ。
人のパッチのレビューとか「絶対」しない人なのに・・・
人のパッチのレビューとか「絶対」しない人なのに・・・
- 関連記事
-
- gccがweak関数のコンパイルをしくる話は (2009/01/01)
- Nick Pigginから Reviewed-by もらった (2008/12/30)
- getrusage::ru_maxrss パッチつくった (2008/12/30)
Jiri Pirko の作ってきたパッチがなんか変だったので、作り直し。
BSDの挙動を調べるために、おうちのパソコンにFreeBSD 7.0 いれちゃいましたよ。とほほ。
BSDの挙動
====
・tick毎に集計しているので、ちょこちょこusleep()入れてやらないとすごく変な値が出てくることがある
・fork()で値はリセット、ただし、RUSAGE_SELFは簡単に再計算できるため実質リセットされてないが
(それでもRUSAGE_SELFが0を返す瞬間があるのはいかがなものかと思う。メモリ使用量0ってなんだ)
・exec() では値は継承
BSDの挙動を調べるために、おうちのパソコンにFreeBSD 7.0 いれちゃいましたよ。とほほ。
BSDの挙動
====
・tick毎に集計しているので、ちょこちょこusleep()入れてやらないとすごく変な値が出てくることがある
・fork()で値はリセット、ただし、RUSAGE_SELFは簡単に再計算できるため実質リセットされてないが
(それでもRUSAGE_SELFが0を返す瞬間があるのはいかがなものかと思う。メモリ使用量0ってなんだ)
・exec() では値は継承
- 関連記事
-
- Nick Pigginから Reviewed-by もらった (2008/12/30)
- getrusage::ru_maxrss パッチつくった (2008/12/30)
- unevictable lru for nommu のパッチが出来たので (2008/12/29)
テスター大募集中。そもそもNOMMUユーザが世界に何人いるのやら・・・
という問題になりそうな気がするが
という問題になりそうな気がするが
- 関連記事
-
- getrusage::ru_maxrss パッチつくった (2008/12/30)
- unevictable lru for nommu のパッチが出来たので (2008/12/29)
- m68knommuはメンテされてないようです。 (2008/12/28)
ysatoさんのありがたい助言に従ってuclinux.orgのtoolchainでハックしてます。
楽ちんですばらしいです。
しかし、m68knommuはdefconfigだと、最初からビルドが通らないことを発見。うーん、こんなツリーを使っていていいのだろうか。
楽ちんですばらしいです。
しかし、m68knommuはdefconfigだと、最初からビルドが通らないことを発見。うーん、こんなツリーを使っていていいのだろうか。
- 関連記事
-
- unevictable lru for nommu のパッチが出来たので (2008/12/29)
- m68knommuはメンテされてないようです。 (2008/12/28)
- 今日は Linus の誕生日 (2008/12/28)
どうも英語版だと有料なのに、日本語版だと無料っぽいのでまよわず日本語サービスをうける
- 関連記事
-
- はてぶボタンをリニューアルした (2010/11/27)
- yahoo sitemapに対応した (2008/12/28)
- IBM Page Detailer まじ良いツールです (2008/12/27)
らしい。
グーグルカレンダーが間違っていなければ。
グーグルカレンダーが間違っていなければ。
- 関連記事
-
- m68knommuはメンテされてないようです。 (2008/12/28)
- 今日は Linus の誕生日 (2008/12/28)
- 予定通り (2008/12/27)
今朝から突然、自分のブログが重くなったので、オライリーの「ハイパフォーマンスWebサイト」で紹介されていたIBM Page Detailer Basic (http://alphaworks.ibm.com/tech/pagedetailer) でレイテンシ解析
明らかにF2Cのアクセス解析Blogパーツが悪さをしている。即刻ステステ。i2cに乗り換えた
おお、劇的に高速化した。よきかなよきかな。
明らかにF2Cのアクセス解析Blogパーツが悪さをしている。即刻ステステ。i2cに乗り換えた
おお、劇的に高速化した。よきかなよきかな。
- 関連記事
-
- yahoo sitemapに対応した (2008/12/28)
- IBM Page Detailer まじ良いツールです (2008/12/27)
- サイトを軽くした (2008/12/22)
年末休み中だけあって暖房がまったく効いておらず、むっさ寒かった。
全然集中できないので早々に退散してきた
全然集中できないので早々に退散してきた
- 関連記事
-
- ベルギー新首相は無手勝流“俳人” (2008/12/31)
- 会社が寒すぎる (2008/12/27)
- 最近理解したbroken lkml englishの法則 (2008/12/27)
LKMLって間違った英語を話す人がすごく多いんだけれども、みんなで首尾一貫して間違っていたりすると、LKML内では正しい言葉になる。
で、観察していて気づいたのだが、英語が不得意な人って、同じように不得意な人から言い方を真似する傾向があるように思う。ネイティブな人の発言はぐわーーーと一杯書いてあるから用意に真似できないけど、カタコトの人のは2-3行だから簡単に真似できる。
こうして間違いが再生産されていくわけだ。。
なんで、KOSAKI 語しゃべってるんだろう、コイツ。とか思ってしまったよ。
で、観察していて気づいたのだが、英語が不得意な人って、同じように不得意な人から言い方を真似する傾向があるように思う。ネイティブな人の発言はぐわーーーと一杯書いてあるから用意に真似できないけど、カタコトの人のは2-3行だから簡単に真似できる。
こうして間違いが再生産されていくわけだ。。
なんで、KOSAKI 語しゃべってるんだろう、コイツ。とか思ってしまったよ。
- 関連記事
-
- 会社が寒すぎる (2008/12/27)
- 最近理解したbroken lkml englishの法則 (2008/12/27)
- びっくりした (2008/12/26)
kernel watchは落ちました。
1月6日掲載予定
1月6日掲載予定
- 関連記事
-
- 今日は Linus の誕生日 (2008/12/28)
- 予定通り (2008/12/27)
- weak functionをインライン展開してしまうgccたん (2008/12/27)
子ネタ
「[BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask」というスレッドでKamalesh Babulal が sparse irq のせいでパニックしたぞ。ゴルァーと報告
で、色々と試行錯誤のすえgccが悪い。という結論に。
Kamalesh Babulal はRHELを使っているらしいのだが、RHEL5.1のgccは腐っていて、weak global functionが空関数だと、global functionなのにインライン展開してしまう。
・・・こら。
Linuxにおいては、アーキスペシフィックな関数を呼ぶのに、共通部にweakな空関数を入れておいて、アーキ依存部でそれを上書きするという事をよくやる。
そうすると、特に処理が必要ないアーキは、なにもしなければ共通部の空関数を呼んでくれて便利だから。
これだけ対応アーキが増えてくると全アーキを一気に直すとかありえんし。
で、要するにせっかくx86専用初期化関数をつくったのに、呼ばれていなかったという。
さらに悪い事に、 __attribute__((noinline)) も無視してインライン化する最強伝説モードらしい。
しかたがないので、weak関数に片っ端からbarrier()マクロを挿入する祭り発生中。
ちなみに、barrier()は以下のようなコンパイラバリアだ
#define barrier() __asm__ __volatile__("": : :"memory")
以下脱線。
sparse irqってのは、x86だと、割り込みが昔16個しかなくて死ぬほど苦しんだ反省からか、 Intelがトチ狂って IO_APIC毎に割り込みをつけちゃったので、IRQ数が死ぬほどでかい。ちなみに現時点でのマクロは
# if NR_CPUS < MAX_IO_APICS
# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
# else
# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
# endif
NR_CPUSはコンパイル時に決める最大値なので、4096とかなので、結局
となる。
で、従来のコードでは struct irq_desc irq_desc[NR_IRQS] とかふつーにグローバル変数の配列にしちゃってたので、数メガの連続領域をとられちゃってた。
もちろん、全IO_APICの全割り込みを使うなんてあるわけないから、壮大な無駄だ。そういうわけで
struct irq_desc *irq_desc_ptr[NR_IRQS] みたいなポインタの配列にして、実際のirq_descriptorは初めて使った時に動的に確保するようにしてメモリを節約するぜ。って機能
ぶっちゃけオレの敵。コードが汚くて見るに耐えないし、そもそも割り込みの延長でメモリ確保呼んで失敗したら割り込み捨てるとかって頭おかしい。
ちなみに、たぶん 2.6.29でマージされるので、みんなで悲鳴をあげやがれ。
追記: barrier()入れてもやっぱりダメな事がわかって、Andrew Mortonからそんなコンパイラ捨ててしまおうぜ。とか提案されてる。
うーむ、LKML的には非常に魅力的なので反対者が出る気がしないのだが、企業の中の人はRHEL5.1切り捨てはちょっと厳しいような気もする
「[BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask」というスレッドでKamalesh Babulal が sparse irq のせいでパニックしたぞ。ゴルァーと報告
で、色々と試行錯誤のすえgccが悪い。という結論に。
Kamalesh Babulal はRHELを使っているらしいのだが、RHEL5.1のgccは腐っていて、weak global functionが空関数だと、global functionなのにインライン展開してしまう。
・・・こら。
Linuxにおいては、アーキスペシフィックな関数を呼ぶのに、共通部にweakな空関数を入れておいて、アーキ依存部でそれを上書きするという事をよくやる。
そうすると、特に処理が必要ないアーキは、なにもしなければ共通部の空関数を呼んでくれて便利だから。
これだけ対応アーキが増えてくると全アーキを一気に直すとかありえんし。
で、要するにせっかくx86専用初期化関数をつくったのに、呼ばれていなかったという。
さらに悪い事に、 __attribute__((noinline)) も無視してインライン化する最強伝説モードらしい。
しかたがないので、weak関数に片っ端からbarrier()マクロを挿入する祭り発生中。
ちなみに、barrier()は以下のようなコンパイラバリアだ
#define barrier() __asm__ __volatile__("": : :"memory")
以下脱線。
sparse irqってのは、x86だと、割り込みが昔16個しかなくて死ぬほど苦しんだ反省からか、 Intelがトチ狂って IO_APIC毎に割り込みをつけちゃったので、IRQ数が死ぬほどでかい。ちなみに現時点でのマクロは
# if NR_CPUS < MAX_IO_APICS
# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
# else
# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
# endif
NR_CPUSはコンパイル時に決める最大値なので、4096とかなので、結局
NR_IRQS = (NR_VECTORS + (32 * MAX_IO_APICS))
= 256 + (32 * 128)
= 4352
となる。
で、従来のコードでは struct irq_desc irq_desc[NR_IRQS] とかふつーにグローバル変数の配列にしちゃってたので、数メガの連続領域をとられちゃってた。
もちろん、全IO_APICの全割り込みを使うなんてあるわけないから、壮大な無駄だ。そういうわけで
struct irq_desc *irq_desc_ptr[NR_IRQS] みたいなポインタの配列にして、実際のirq_descriptorは初めて使った時に動的に確保するようにしてメモリを節約するぜ。って機能
ぶっちゃけオレの敵。コードが汚くて見るに耐えないし、そもそも割り込みの延長でメモリ確保呼んで失敗したら割り込み捨てるとかって頭おかしい。
ちなみに、たぶん 2.6.29でマージされるので、みんなで悲鳴をあげやがれ。
追記: barrier()入れてもやっぱりダメな事がわかって、Andrew Mortonからそんなコンパイラ捨ててしまおうぜ。とか提案されてる。
うーむ、LKML的には非常に魅力的なので反対者が出る気がしないのだが、企業の中の人はRHEL5.1切り捨てはちょっと厳しいような気もする
- 関連記事
-
- 予定通り (2008/12/27)
- weak functionをインライン展開してしまうgccたん (2008/12/27)
- Linuxでサポートされているnommuマシンを教えて (2008/12/26)
なんだか、まわりがザワザワしているので、理由を聞いたら今日は仕事の最終日らしい。
ええ!?聞いてないよ。
今年一番のサプライズやわ。会社にだまされた。
ええ!?聞いてないよ。
今年一番のサプライズやわ。会社にだまされた。
- 関連記事
-
- 最近理解したbroken lkml englishの法則 (2008/12/27)
- びっくりした (2008/12/26)
- ゴミ捨て (2008/12/06)
という質問をはてなに投げた。
http://q.hatena.ne.jp/1230269636
CONFIG_UNEVICTABLE_LRUのdepend on MMU をそろそろはずさないといかんよなーと思って、m68k クロスコンパイラを http://wiki.osdev.org/GCC_Cross-Compiler とかみながら構築したのだが、ちゃんとリンクまで辿り着けなかったよ。くすん
http://q.hatena.ne.jp/1230269636
CONFIG_UNEVICTABLE_LRUのdepend on MMU をそろそろはずさないといかんよなーと思って、m68k クロスコンパイラを http://wiki.osdev.org/GCC_Cross-Compiler とかみながら構築したのだが、ちゃんとリンクまで辿り着けなかったよ。くすん
- 関連記事
-
- weak functionをインライン展開してしまうgccたん (2008/12/27)
- Linuxでサポートされているnommuマシンを教えて (2008/12/26)
- 2.6.28 (2008/12/25)
でました。
ところで、commit logに
Happy holidays..
って書いてあるんだけど、アメリカではそうなん?
ところで、commit logに
Happy holidays..
って書いてあるんだけど、アメリカではそうなん?
- 関連記事
-
- Linuxでサポートされているnommuマシンを教えて (2008/12/26)
- 2.6.28 (2008/12/25)
- どこかで見た名前が (2008/12/22)
LinkedInに招待されたので、色々いじっている。
むーん、使い方がまったく分からん。
意味不明のままアドレス帳にたまたま載っていた Rik van Riel にconnect要請をしたら30秒でAckされて、Redhatのsenior software engineerとは全員2ホップになったらしく、Larry Troan とか画面に出てきて笑った。
むーん、使い方がまったく分からん。
意味不明のままアドレス帳にたまたま載っていた Rik van Riel にconnect要請をしたら30秒でAckされて、Redhatのsenior software engineerとは全員2ホップになったらしく、Larry Troan とか画面に出てきて笑った。
- 関連記事
-
- OOXMLはRELAX NG に対応しているらしい (2009/01/25)
- LinkedInに招待された (2008/12/22)
- ちょっとまてやゴルァ > XML1.0 5th (2008/12/03)
Paul Mundt が shアーキの .29向け変更のPull依頼を出している。
・・・あれ、どこかで見た名前が :-p
・・・あれ、どこかで見た名前が :-p
Nobuhiro Iwamatsu (2):
sh: sh7760fb: Fix color pallette setting
sh: sh7760fb: Add support SH7720/SH7721 of Renesas
- 関連記事
-
- 2.6.28 (2008/12/25)
- どこかで見た名前が (2008/12/22)
- kernel watch 12月号 (2008/12/22)
なんか、1年間のまとめっぽい記事を。とかリクエストされたので、TOMOYOとか書いてみた。なんか社内でTOMOYOってそんなに有名だっけ?!
とか聞かれたりした。
いえいえ、有名ですよ! 2ch 界隈に限って言えば。
あと、結局テトリスを捻じ込むのは無理だった。うーん、タイミングが悪すぎた。
とか聞かれたりした。
いえいえ、有名ですよ! 2ch 界隈に限って言えば。
あと、結局テトリスを捻じ込むのは無理だった。うーん、タイミングが悪すぎた。
- 関連記事
-
- どこかで見た名前が (2008/12/22)
- kernel watch 12月号 (2008/12/22)
- stptracer (2008/12/15)
オライリーの「ハイパフォーマンスWebサイト」という本を読んでそれに反している事をいくつかやっていることに気づいたので修正
なかなかいい本であった
なかなかいい本であった
- 関連記事
-
- IBM Page Detailer まじ良いツールです (2008/12/27)
- サイトを軽くした (2008/12/22)
- タイトルなし (2008/07/17)
いつのまにか、新バージョンが出てた。
アップしたら教えてっていったのにー(泣
追記: と思ったら超本命の某ソフトが同梱されていない。原稿ネタになるかと思ってがんばって調査したのに
アップしたら教えてっていったのにー(泣
追記: と思ったら超本命の某ソフトが同梱されていない。原稿ネタになるかと思ってがんばって調査したのに
- 関連記事
-
- kernel watch 12月号 (2008/12/22)
- stptracer (2008/12/15)
- CONFIG_UNEVICTABLE_LRUってなんで必要なの? (2008/12/11)
OFFにするやついねーだろ。と素朴につっこまれて、一瞬、答えに詰まったが、NO MMUマシンがどーのこーのと適当言って誤魔化した。
まあ、あながち嘘ではない。
depend on MMU いれたオイラがいうのだから、信憑性は高い。
まあ、あながち嘘ではない。
depend on MMU いれたオイラがいうのだから、信憑性は高い。
- 関連記事
-
- stptracer (2008/12/15)
- CONFIG_UNEVICTABLE_LRUってなんで必要なの? (2008/12/11)
- 2.6.28をいつリリースするか (2008/12/11)
とLinusが意見をつのっている。
このままだと、来週リリースになるけど、それだとクリスマス休暇の真っ最中にマージウィンドウがくるので困る人が多そう、ってのが懸念
a) リリースをクリスマス後まで延ばす
b) リリースはするが、マージウィンドウをちょっと長めにしてあげる
c) うるへー、強行突破じゃ
の3択
このままだと、来週リリースになるけど、それだとクリスマス休暇の真っ最中にマージウィンドウがくるので困る人が多そう、ってのが懸念
a) リリースをクリスマス後まで延ばす
b) リリースはするが、マージウィンドウをちょっと長めにしてあげる
c) うるへー、強行突破じゃ
の3択
- 関連記事
-
- CONFIG_UNEVICTABLE_LRUってなんで必要なの? (2008/12/11)
- 2.6.28をいつリリースするか (2008/12/11)
- zone_watermark_ok() 書き換えパッチをやっと投稿 (2008/12/09)
こういうコア中のコアを書き換えるパッチは、よくよくうまく説得しないとフレームになってしまうので、データをとりまくった。
南無山。
南無山。
- 関連記事
-
- 2.6.28をいつリリースするか (2008/12/11)
- zone_watermark_ok() 書き換えパッチをやっと投稿 (2008/12/09)
- FASYNC にBKLが復活 (2008/12/08)
2.6.28でAndi KleenのBKL削除パッチが入ったのだがraceがみつかったとかでJonathan Corbetじきじきにrevertパッチが作成され、マージされた。
Corbetさん、たまにジャーナリスト忘れてパッチ書き始める所が大好き
追記: typo修正。Corbet先生御大の御名を間違えるとは・・・
Corbetさん、たまにジャーナリスト忘れてパッチ書き始める所が大好き
追記: typo修正。Corbet先生御大の御名を間違えるとは・・・
- 関連記事
-
- zone_watermark_ok() 書き換えパッチをやっと投稿 (2008/12/09)
- FASYNC にBKLが復活 (2008/12/08)
- なんじゃこのWhackyなパッチわ! (2008/12/07)
と Andrew Mortonにdisられた。
ごめんごめんメールを書こうと思っていたら、何故か -mmにマージされていた。
何を言っているか分からないと思うが、俺にも分からない。もっと恐ろしいAndrewを味わったぜ
ごめんごめんメールを書こうと思っていたら、何故か -mmにマージされていた。
何を言っているか分からないと思うが、俺にも分からない。もっと恐ろしいAndrewを味わったぜ
- 関連記事
-
- FASYNC にBKLが復活 (2008/12/08)
- なんじゃこのWhackyなパッチわ! (2008/12/07)
- mel に先を越された (2008/12/07)
per migratetype pcpを作る予定だよん。とLKMLで予告しておいて放置していたらMel Gormanに先を越されてしまった。
しかも結構いいパッチなのでイチャモンのつけようがない。これはきっとメインラインまで行くでしょう。
tbenchで6%の高速化ゲットだぜー(しくしく)
しかも結構いいパッチなのでイチャモンのつけようがない。これはきっとメインラインまで行くでしょう。
tbenchで6%の高速化ゲットだぜー(しくしく)
- 関連記事
-
- なんじゃこのWhackyなパッチわ! (2008/12/07)
- mel に先を越された (2008/12/07)
- どうやら無事に (2008/12/03)
12月なので、というわけでもないが1年かけて溜まっていた粗大ゴミの山をゴミ収集センターにもっていく。
うーん、すっきり。
話はそれるが、途中で寄ったガススタのお値段にたまげたわ。何この値下げ。夏までの狂乱はなんだったのか?
うーん、すっきり。
話はそれるが、途中で寄ったガススタのお値段にたまげたわ。何この値下げ。夏までの狂乱はなんだったのか?
- 関連記事
-
- びっくりした (2008/12/26)
- ゴミ捨て (2008/12/06)
- おやー (2008/12/03)
なんか、知らないうちに大切な約束を破っていたらしい。
相手むっさ怒ってた。
普通に日付を読み間違えていたとかそんなん。
相手むっさ怒ってた。
普通に日付を読み間違えていたとかそんなん。
- 関連記事
-
- ゴミ捨て (2008/12/06)
- おやー (2008/12/03)
- 鹿の大群 (2008/11/25)
Split-LRU for memcg も per cgroup swappiness も-mmにマージされたようです。
うまくいけば2.6.29に送られるでしょう。
「やったー、-mmのパッチキューの長さが35を超えた」って喜んでいたら隣の席に90を超えているバケモノがいてしょんぼり。
化け物め。
うまくいけば2.6.29に送られるでしょう。
「やったー、-mmのパッチキューの長さが35を超えた」って喜んでいたら隣の席に90を超えているバケモノがいてしょんぼり。
化け物め。
- 関連記事
-
- mel に先を越された (2008/12/07)
- どうやら無事に (2008/12/03)
- SplitLRU for memcgroup が -mmにマージされたやったー。と思ったら (2008/12/03)
KAMEZAWAさんからAndrew Mortonにしばらくマージしないでメールが飛んだ。しくしく。
- 関連記事
-
- どうやら無事に (2008/12/03)
- SplitLRU for memcgroup が -mmにマージされたやったー。と思ったら (2008/12/03)
- 家に帰って酒を飲んでいたら (2008/12/02)