プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

スポンサーサイト このエントリーをはてなブックマークに追加

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)

"vmscan: bail out of direct reclaim after swap_cluster_max pages" がmainline入り このエントリーをはてなブックマークに追加

去年やっていた reclaim throttleの一部をRik van Rielが切り出して -mmに入れてくれていたのですが、いきなりmainlineに送られるとはおもわなかった。

何をやっているかというと、従来は最初にきめたスキャン数だけページをスキャンし終わるまではreclaimを途中で抜ける事が絶対なかったので、回収しすぎる事がよくあった。
Direct Reclaimはメモリ確保を呼んだタスクのコンテキストを借りてメモリを回収するしくみなので、これが起きると、

・回収が長引いた分、そのタスクの本来の処理がその間とまる
・キャッシュを不要に回収した分、キャッシュミスが増える

とダブルパンチで痛かった。
なので、今後は32page以上回収したらいったん呼び出し元に戻ります。hugepageのように32page以上欲しいときはalloc_pages_internal()にリトライ機構があるので、ご安心を。

なにが大変だったって、Andrew Mortonが「うーん、昔似たようなパッチを作った事があって、2.6系の初期はこういう打ちきり動作してたんだよね、2年ぐらい。で、regressionがあったから消したはずなんだが、理由が思い出せん」とか言い出して、当時のregressionが再発しない事を証明するのがえらい大変だった。
過去MLや過去commit logをあさりまくり。

いつものように、Rikはコード書いた後はなにもしないので、性能向上証明とかも全部やったちゅーねん。


これでhackbench性能30%アップ
関連記事


linux | 【2009-01-07(Wed) 09:31:05】 | Trackback:(0) | Comments:(0)
  1. 無料アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。