10周年のSPコンテンツ!

NetBSD UVM page coloringメモ

NetBSD PR kern/45361 の page coloring についての修正案その他の覚え書きメモです。 自分の作業用ブックマーク代わりにアーカイブしてましたが、すぐに着手できるかどうかわからないのでひとまず公開にして置いておきます。
プログラミング キャッシュ 仮想記憶 NetBSD
7
Izumi Tsutsui @tsutsuii
カーネル更新でまた PR kern/45361 で落ちるので問題の変更内容見てみたけど、PAキャッシュページカラーリングを承知の上で巨大PAキャッシュで問題になるのは分かってるのにちゃんと直すのめんどいからあえて無視してVIPT対応つっこんだ、という気がするのは偏見入り過ぎか
Izumi Tsutsui @tsutsuii
・uvmexp.ncolorsと別にuvm_[pv]a_ncolorsとマスクを用意 ・MDのncolors代入を上記に置き換え ・PAカラーリングではPAのを、COLORMATCHはVAのを使う ・emergvaのカラーはMDで最大値定義して使う ・recolorはPAのみ可
Izumi Tsutsui @tsutsuii
……でいいような気はするがMD部がめんどい。uvm_page_recolor()で即リターン、という投げやりworkaroundでいいんじゃないの、と思ったり
Izumi Tsutsui @tsutsuii
まあ、現状でもやたら効率悪いだけでいきなり再起動かかるのはほかにもうっかりバグが入ってるという気もするけど。いつものうっかり具合いだとするとさらに調べるのめんどい
Izumi Tsutsui @tsutsuii
しかしこんなあからさまにアレな内容を1か月以上放置なのはどうなんだろ。テキトーテストで問題なさそうだったら勝手にworkaround入れていいのか?
Izumi Tsutsui @tsutsuii
スーパー投げやりパッチあてたカーネルでQEMUビルドテスト
Izumi Tsutsui @tsutsuii
なんかもう1か所 直すべきところがあったような気がしないでもない
Izumi Tsutsui @tsutsuii
QEMUビルド20回耐久 とかすればいいんだろか
Izumi Tsutsui @tsutsuii
メモリ4GBのNetBSD/i386がメモリ使い果たして落ちないか確認してる横で メモリ16MBに増やしたNetBSD/luna68kでX超快適じゃんと言いながら動作テスト
Izumi Tsutsui @tsutsuii
QEMU 2回目のビルド中に固まった(´・ω・`)
Izumi Tsutsui @tsutsuii
メインマシンで耐久すると鬱なことになるから別マシンでやりたいけど 5.1 なマシンしかないな(´・ω・`)
Izumi Tsutsui @tsutsuii
メモリ不足で落ちるかどうか見るだけなら-current live image作ってQEMU動かせばいいだけか
Izumi Tsutsui @tsutsuii
まあ、なんかめんどくさくなったからこのままテキトーパッチでしばらく生活してみてから考えよう
Izumi Tsutsui @tsutsuii
L2キャッシュ1MBなのに 16 page colors って少ないなと思ったら Athlon II X2 の L2って 16-way なのか。その数でも変ってことは根本的にどこか誤ってるのかしらん
Izumi Tsutsui @tsutsuii
Intelのなにかは6MBで3wayなんてのがあった気がするが思い出せない
Izumi Tsutsui @tsutsuii
手元ソースの差分整理してたらmipsでこんなの出てきたけど誰も困ってないみたいだしほっといていいですよね http://t.co/8nEXy9wp
拡大
SODA Noriyuki @n_soda
@tsutsuii ええええー、ありえなーい
Izumi Tsutsui @tsutsuii
UVMテキトーパッチ改訂版はqemuビルド耐久を一応生き延びたみたいだけど、もう少し前向きな修正になるよう直してみるか……
Izumi Tsutsui @tsutsuii
uvm_map_findspace(9) に対して UVM_FLAG_COLORMATCH を指定したときとしないときとで引数 align の意味と中身が変わるという確信犯的手抜き実装のために 呼び出し元に対するチェックが果てしなくめんどくさい件
Izumi Tsutsui @tsutsuii
uvm_pagealloc(9) に UVM_FLAG_COLORMATCH を指定したときの off の意味は変わらない
Izumi Tsutsui @tsutsuii
uvm_km_alloc(9) に UVM_FLAG_COLORMATCH を指定したときは……VA確保で uvm_map(9) を、PA確保で uvm_pagealloc_strat(9) を呼ぶので、align の意味は変わるが offset の意味は変わらない。わかるかよ!
残りを読む(57)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする