[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の検出が無効になってしまっている
のではないでしょうか?

篠原