4

当我发出这个命令时

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

所以我假设 size 参数在某些方面受到限制。有这样的限制吗?是否可以将任意内存区域设置为“不可缓存”?

我的原始(启动后)/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 缓存。

4

0 回答 0