加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 无法在Core i7中禁用硬件预取程序

发布时间:2020-12-14 01:12:16 所属栏目:Linux 来源:网络整理
导读:尝试在我的Core i7系统中禁用硬件预取程序时,我收到错误.我按照链接 How do I programmatically disable hardware prefetching?遵循该方法 在我的系统中 grep -i msr /boot/config-$(uname -r) CONFIG_X86_DEBUGCTLMSR = Y CONFIG_X86_MSR = Y CONFIG_SCSI_A
尝试在我的Core i7系统中禁用硬件预取程序时,我收到错误.我按照链接 How do I programmatically disable hardware prefetching?遵循该方法

在我的系统中

grep -i msr /boot/config-$(uname -r)

CONFIG_X86_DEBUGCTLMSR = Y

CONFIG_X86_MSR = Y

CONFIG_SCSI_ARCMSR =米

这是我的错误消息

root@ ./rdmsr 0x1a0

850089

[root@ ./wrmsr -p 0 0x1a0 0x850289 (to disable hardware prefetcher in Core i7)

wrmsr:pwrite: Input/output error

我在禁用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一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读