[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pbsd-mg2] Re: cache problem again
cache問題の話です。
ファイルシステムのブロックサイズが4KBから8KBに変わると、ファイルI/Oに関
してはMMUのページサイズが8KBになったのに近い効果が期待できます。(常に8KB
ずつ割り当てるとすれば、ページサイズが8KBになったのと同じことになります。
ただし、本当に8KBずつ割り当てているかどうかは確認していません。)
VR41xxの場合はページサイズが8KB以上になるとvirtual aliasが発生しなくなり
ます。ファイルシステムのブロックサイズが8KBになるとページサイズが4KBでも
virtual aliasが発生しにくくなるのではと思って実験してみた次第です。
ところで、今朝家を出るときにふと気になることを思い出したので、ソースの該
当部分を見てみました。
sys/arch/mips/mips/mips_machdep.cのmips3_ConfigCache()の中で、virtual
aliasを検出するためのmips_CacheAliasMaskという変数の値を計算している部分
があり、以下のようになっています。
mips_CacheAliasMask = (mips_L1DCacheLSize - 1) & ~(NBPG - 1);
ここで、式の中でmips_L1DCacheLSizeを使っていますが、これはcacheのline
sizeです。正しくは、mips_L1DCacheSize(primary cacheの大きさ)ではないか
と思うのですが。
実機がここにはないので動作時の値を確認できないのですが、上記の式で計算す
ると値は多分0になっていて、virtual aliasの検出が無効になってしまっている
のではないでしょうか?
篠原