このコマンドを発行しているとき
sudo sh -c "echo \"base=0x110000 size=0xa000 type=uncachable\" >| /proc/mtrr"
/proc/mtrr は変更されていませんが、新しいエントリが追加されることを期待しています。
次のコマンドで動作します。
sudo sh -c "echo \"base=0x110000 size=0x10000 type=uncachable\" >| /proc/mtrr"
次のエントリを追加します。
reg05: base=0x000110000 ( 1MB), size= 64KB, count=1: uncachable
そのため、サイズ パラメータは何らかの方法で制限されていると思います。そのような制限はありますか?任意のメモリ領域を「キャッシュ不可」に設定することは可能ですか?
元の (起動後) /proc/mtrr は次のようになります。
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x040000000 ( 1024MB), size= 512MB, count=1: write-back
reg02: base=0x05f700000 ( 1527MB), size= 1MB, count=1: uncachable
reg03: base=0x05f800000 ( 1528MB), size= 8MB, count=1: uncachable
reg04: base=0x0c0000000 ( 3072MB), size= 256MB, count=1: write-combining
Pentium M で Linux 2.6.32-41-generic #89-Ubuntu SMP を使用しています。参照: http://www.mjmwired.net/kernel/Documentation/mtrr.txt
背景: タイミング実験のために、特定のプロセスのメモリ領域の CPU キャッシュを無効にしたいと考えています。