我试图在我的机器上禁用硬件预取:
CPU系列:6
型号: 78
型号名称: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
我已经和gcc -march=native -Q
我安装了msr工具。grep -i msr /boot/config-$(uname -r)这会给出结果: CONFIG_X86_MSR=m -我不确定是否有必要设置它Y,或者如何设置它。我试着用这个帖子:
How do I programmatically disable hardware prefetching?
Unable to disable Hardware prefetcher in Core i7
不过,我认为帖子有点旧,不使用0x1a4地址。另外,在注释中没有描述如何使用此地址进行修改,也没有说明修改0x1a4或0x1a0之间是否有区别。
我读过这篇文章:https://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors,它说在0x1A4中可以通过将0-3位设置为1来禁用预取。MOD探针msr -执行此命令不会产生错误(也不会打印任何消息)。然后我尝试这两个命令:
-p 0 0x1a4 15 //用于核心0
-p 2 0x1a4 15 //用于核心2
15是用来将最后4位设置为1的。
你能帮我确保我正确地禁用了预取器吗?由于我对sudo -p 0 0x1a4 15 -命令做了很多假设,我不确定我是否正确地使用了它。我试着提供所有的信息,但如果有必要的话,请告诉我。(我缩短了这个职位,因为我想这是太长的时间了)
发布于 2019-02-22 09:55:33
我发现这些命令工作正常。尽管如此,还是应该先执行sudo探测器msr。主要的问题是我用爸爸事件测试它的方式。
https://stackoverflow.com/questions/54753423
复制相似问题