簡體   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