我尝试通过在/ proc / mtrr中添加一个不可访问的区域来禁用缓存,但似乎有时它可以工作,有时它不能。我必须再次阅读整个地区,它有效,例如:
我的补充:
reg00: base=0x000000000 ( 0MB), size= 16384MB, count=1: write-back
reg01: base=0x400000000 (16384MB), size= 8192MB, count=1: write-back
reg03: base=0x020000000 ( 8192MB), size= 512MB, count=1: uncachable
我必须禁用reg00,然后再将0x000000000的区域基数添加为无法访问的区域:
reg00: base=0x000000000 ( 0MB), size= 16384MB, count=1: uncachable
reg01: base=0x400000000 (16384MB), size= 8192MB, count=1: write-back
现在它可以工作,但系统非常慢。是否有其他方法可以在x86上禁用缓存?据我所知,在arm架构上,Linux支持配置CONFIG_CPU_DCACHE_DISABLE以支持缓存禁用,但我在x86上找不到相同的内容。