繁体   English   中英

在 Skylake 中使用 MSR 正确禁用硬件预取

[英]Correctly disable Hardware Prefetching with MSR in Skylake

我正在尝试在我的机器上禁用硬件预取:

CPU系列:6

型号:78

型号名称:Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz

我已经检查过:gcc -march=native -Q --help=target|grep March - 命令,它是 Skylake 微架构。

我已经安装了 msr-tools。 grep -i msr /boot/config-$(uname -r) 这给出了结果:CONFIG_X86_MSR=m - 我不确定是否有必要将它设置为 Y,或者如何做到这一点。 我试图使用这个帖子:

如何以编程方式禁用硬件预取?

无法在 Core i7 中禁用硬件预取器

但是我认为帖子有点旧并且不使用 0x1a4 地址。 同样在评论中,它没有描述如何使用这个地址来做它,或者修改 0x1a4 或 0x1a0 之间是否没有区别。

我已经阅读了这篇文章: https : //software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors它说可以通过设置 0 禁用预取-3 位到 0x1A4 中的 1。 modprobe msr - 执行此命令不会出错(也不打印任何消息)。 然后我正在尝试这两个命令:

sudo wrmsr -p 0 0x1a4 15 //对于核心0

sudo wrmsr -p 2 0x1a4 15 //对于核心2

15 用于将所有最后 4 位设置为 1

你能帮我确保我正确禁用了预取器吗? 由于我对 sudo wrmsr -p 0 0x1a4 15 - 命令做了很多假设,我不确定我是否正确使用它。 我试图提供所有信息,但如果需要其他任何信息,请告诉我。 (我已经缩短了帖子,因为我想它太长了无法阅读)

我发现这个命令工作正常。 sudo modprobe msr - 不过应该先执行。 主要问题是我用 papi 事件测试它的方式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM