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

Caching 在Skylake中使用MSR正确禁用硬件预取,caching,prefetch,microprocessors,papi,msr,Caching,Prefetch,Microprocessors,Papi,Msr,我正在尝试在我的计算机上禁用硬件预取: CPU系列:6 型号:78 型号名称:英特尔(R)核心(TM)i5-6200U处理器@2.30GHz 我已经检查过:gcc-march=native-Q--help=target | grep-march-command,它是Skylake微体系结构 我已经安装了msr工具。grep-imsr/boot/config-$(uname-r)这给出了一个结果:config_X86_msr=m-我不确定是否有必要将其设置为Y,或者如何设置。我试图使用以下帖子:

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

CPU系列:6

型号:78

型号名称:英特尔(R)核心(TM)i5-6200U处理器@2.30GHz

我已经检查过:gcc-march=native-Q--help=target | grep-march-command,它是Skylake微体系结构

我已经安装了msr工具。grep-imsr/boot/config-$(uname-r)这给出了一个结果:config_X86_msr=m-我不确定是否有必要将其设置为Y,或者如何设置。我试图使用以下帖子:

不过,我假设帖子有点旧,不使用0x1a4地址。注释中也没有描述如何使用此地址,或者修改0x1a4或0x1a0之间是否没有区别

我读过这篇文章:它说在0x1A4中将0-3位设置为1可以禁用预取。 modprobe msr-执行此命令不会出现错误(也不会打印任何消息)。然后我尝试这两个命令:

核心0的sudo wrmsr-p 0 0x1a4 15//

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

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


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

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