msr

    2熱度

    1回答

    我試圖禁用硬件預取程序以在Intel核心i5 2500上運行一些內存基準測試。問題是,在我的BIOS中沒有任何選項來啓用或禁用預取程序。所以我正在嘗試使用msr-tools禁用預取程序。但是msr-tool無法將一些特定值寫入所需的寄存器(0x1a0h)。 $ rdmsr -p 0 0x1a0 850089 $ wrmsr -p 0 0x1a0 0x850289 wrmsr: CPU 0

    1熱度

    1回答

    我的主要目標是在程序崩潰時獲取由LBR寄存器維護的最後16個分支的地址值。我嘗試了兩種方法,直到現在 - 1)msr-tools 這使我可以從命令行讀取msr值。我從C程序本身進行系統調用並嘗試讀取值。但是寄存器值似乎沒有與程序本身中的地址相關的地方。很可能寄存器在系統代碼中受到其他分支的污染。我嘗試關閉記錄0環和遠端跳躍的分支。但是這並沒有幫助。仍然獲得無關的價值。 2)通過內核模塊訪問 好吧,

    2熱度

    2回答

    我想在我的OSX用戶空間程序中使用x86規範(DR0-7)中定義的調試MSR。不幸的是,這些需要CPL == 0(又名0環)。我已經瀏覽了OSX系統調用,除了kernel_debug之外,沒有什麼可以作爲訪問這些調用的方式。 可能是這種情況,他們只能通過像kernel_debug這樣的更高級別的界面來使用,但是我不清楚這是否是這種情況,或者我是否還沒有找到魔法調用來找到它們。 我的最終目標是訪問這

    4熱度

    2回答

    我正在嘗試使用CPUID,但附加了一些字符串。根據sandpile.org's CPUID page,如果MISC_ENABLE.LCMV標誌設置爲0,CPUID標準功能0000_0004h及以上纔會起作用。該標誌是型號專用寄存器(MSR)1A0的位22。顯然,這個限制是由於Windows NT中的一個錯誤(感謝讓我更容易,Microsoft;))。 我可以測試LCMV標誌的存在下用CPUID 0