NetBSD UVM page coloringメモ

NetBSD PR kern/45361 の page coloring についての修正案その他の覚え書きメモです。 自分の作業用ブックマーク代わりにアーカイブしてましたが、すぐに着手できるかどうかわからないのでひとまず公開にして置いておきます。
8
前へ 1 2 ・・ 5 次へ
Izumi Tsutsui @tsutsuii

uvm_pagermapin(9) は VAC index に合わせてバッファずらしてるだけだから 自分自身の中身だけでなんとかすればよくて引数は無関係

2011-10-19 19:47:02
Izumi Tsutsui @tsutsuii

sys/uvm の外から uvm(9) 関連を呼んでる部分が正しく引数指定しているかなんてチェックしきれんのだけど

2011-10-19 19:49:07
Izumi Tsutsui @tsutsuii

COLORMATCHが何するものかなんて理解して指定している人なんていないだろうから大丈夫という前提でいいのか? mips の下はあるかもしれないけど、さすがにそっちは書いた本人が一応見てるだろうし

2011-10-19 19:51:57
Izumi Tsutsui @tsutsuii

とにかく走らせて KASSERT(9) で引っ掛けろということなのか。そういう割り切りもあるかもしれないけれど、それならそれでもっとコメント書くとか設計方針説明するとかしてくれないと誰も追いついて来ない罠

2011-10-19 19:55:02
Izumi Tsutsui @tsutsuii

uvm_map(9)でUVM_FLAG_COLORMATCHを指定したとき、PACなら何もする必要ないわけだけれど現状のコードのままでvac_ncolor=1としてpage color判定すればそのままでいけるか

2011-10-19 21:49:46
Izumi Tsutsui @tsutsuii

あとは バケツの数>vac_ncolors で破綻するようなところがないかどうかのチェックか。たぶん大丈夫という気はするけれど

2011-10-19 21:51:07
Izumi Tsutsui @tsutsuii

vac_ncolors > 1 かつ pac_ncolors > vac_ncolors の場合、つまりL1がVIPTでL2が巨大PIPTの場合に uvm_pagealloc(9)でPACページカラーリング割り当てする意味があるのかというとベンチマークしてみないとわからんけど

2011-10-19 21:55:31
Izumi Tsutsui @tsutsuii

VA index=PA index の制約を課すことでわりと現実的な実装になっているという気はするけれど、じゃあindexの異なる複数のVAを共有マップするような操作をしたときに何が起こるのかがいまいち読み取れない

2011-10-19 22:00:06
Izumi Tsutsui @tsutsuii

つーか、そういう対処のための変更が見当たらないような気が。見落としてるだけかもしれないけど

2011-10-19 22:00:22
Izumi Tsutsui @tsutsuii

uvm_pagermapin() は first_color を vac_colormask する必要あるか

2011-10-19 22:02:57
Izumi Tsutsui @tsutsuii

だんだんめんどくさくなってきた(´・ω・`)

2011-10-19 22:06:01
Izumi Tsutsui @tsutsuii

src/sys/miscfs/genfs/genfs_io.c で uvmexp.colormask 参照してるな。何してんだろ

2011-10-19 22:18:44
Izumi Tsutsui @tsutsuii

src/sys/dev/mm.c もVAでOK。こんなもんか? MDでのuvmexp.ncolorsの参照は代入だけだと思うけど、参照してるところあるのか?

2011-10-19 22:27:29
Izumi Tsutsui @tsutsuii

mips pmapの中くらいか。こいつもVA

2011-10-19 22:27:50
Izumi Tsutsui @tsutsuii

colormaskのほうもMDの参照はmips pmapだけ。つーか、ほんと確信犯にしか見えんな……

2011-10-19 22:29:07
Izumi Tsutsui @tsutsuii

ncolorsがuvmexpの中に入ってる意味ってなんなんだろ。単に vmstat(1) で見たいってだけか?

2011-10-19 22:33:06
Izumi Tsutsui @tsutsuii

vmstat(1) で見えてうれしいことってあんまりない気がするけど。PAC coloringしかしてないなら特に。デバッグでバケツの数が気になるくらいか?

2011-10-19 22:34:13
Izumi Tsutsui @tsutsuii

11時か。もうコードいじってテストする時間はないから今日はここまでか。今日のツイートメモっといて週末作業かな

2011-10-19 22:55:35
Izumi Tsutsui @tsutsuii

週末までに今日のコード読みが台無しになるような変更が入る可能性の予想確率40%

2011-10-19 23:12:18
Izumi Tsutsui @tsutsuii

昨日時点の PR kern/45361 workaroundテキトーパッチ http://t.co/D6SISnbu ただ、元がどう落ちてるのかいまいち不明

2011-10-19 23:25:22
Izumi Tsutsui @tsutsuii

mipsでこれ当てると悪化するような気がするけど

2011-10-19 23:26:17
Izumi Tsutsui @tsutsuii

もう少しマシな直し方をしようとすると結局全部直すハメになるかなあ。MDいじらず現状の uvmexp.ncolors を ifdef で vac_ncolors と pac_ncolors のどちらかに放り込む、という案はあるけど recolor が呼ばれたときどうするかとか微妙

2011-10-19 23:32:48
Izumi Tsutsui @tsutsuii

Core 2 Duo E7400だと cpu0: L2 cache 3MB 64B/line 12-way で 64 page colors か。6MB L2 の E8500 だと 128 color なのか 24-way なのか

2011-10-19 23:54:50
Izumi Tsutsui @tsutsuii

明日は仕事になったのでUVM作業は延期

2011-10-21 19:55:15
前へ 1 2 ・・ 5 次へ