linux – 无法在Core i7中禁用硬件预取程序
尝试在我的Core i7系统中禁用硬件预取程序时,我收到错误.我按照链接
How do I programmatically disable hardware prefetching?遵循该方法
在我的系统中
CONFIG_X86_DEBUGCTLMSR = Y CONFIG_X86_MSR = Y CONFIG_SCSI_ARCMSR =米 这是我的错误消息
我在禁用Adjacent cache line prefetcher时收到同样的错误 知道如何解决这个问题吗?提前致谢 . 解决方法
MSR规范特定于英特尔处理器系??列,如
Intel Architectures Software Developer Manuals第35章所述.因此,您必须先检查是否可以通过MSR禁用CPU的预取器,然后检查哪些寄存器必须切换到哪个位.
对于我的处理器Intel Xeon 5650(06_2CH系列),手册指定保留地址0x1A0的寄存器IA32_MISC_ENABLE的第10位至第8位.我想这意味着我无法通过MSR打开和关闭预取器.根据英特尔员工here的回答:“英特尔尚未透露如何禁用Nehalem处理器上的预处理器.您需要使用BIOS中的选项禁用预取程序.” 在我的工作站上,运行 sudo wrmsr -p 0 0x1a0 0x850289 结果是: wrmsr: CPU 0 cannot set MSR 0x000001a0 to 0x0000000000850289 但 sudo wrmsr -p 0 0x1a0 0x850088 作品. 这似乎证实了我无法使用MSR禁用预取.请注意,此错误与您的错误不同,并且在阅读上面第35.9章提到的英特尔手册后,您的处理器似乎也无法使用MSR消除预取器.我不知道为什么我们没有相同的错误消息,你的msr模块和Linux内核的版本是什么? (modinfo msr) 因此,BIOS可能是禁用不同预取程序的唯一方法,就像我的Xeon 5650一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |