Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 无法在Core i7中禁用硬件预取程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

尝试在我的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_
尝试在我的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一样.

大佬总结

以上是大佬教程为你收集整理的linux – 无法在Core i7中禁用硬件预取程序全部内容,希望文章能够帮你解决linux – 无法在Core i7中禁用硬件预取程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。