专门针对AMD Opteron barcelona或Istanbul架构.
解决方法 所有AMD系列10h处理器(包括巴塞罗那和伊斯坦布尔)都有两个不同的硬件预取器.>第一个是传统的数据缓存预取程序,它可以识别连续的缓存行访问升序或降序流.可以通过将MSRC001_1022的第13位设置为“1”来禁用它.
>其他硬件预取器是“内存控制器预取器”.这是一个更通用的预取器,但仅在内存控制器内运行(即,它不会将预取数据发送到核心 – 它只是使内存控制器在核心请求时更快地返回它).
>此预取器的主要控制是PCI配置空间,功能2,偏移11Ch,功能2中的附加控制,巴塞罗那后处理器的偏移1B0h.
>通过/ dev / mem设备驱动程序更新PCI配置空间中的值,我成功地在“实时”barcelona系统上禁用和重新启用此预取器. (不要在家里试试!)
>内存控制器预取程序的活动由硬件性能计数器事件1F0h显示,UnitMasks 02和04.
>请注意,上海/伊斯坦布尔/ MagnyCours的内存控制器预取器“连贯”运行(意味着缓存一致性探测 *** 作与内存预取一起发布),而巴塞罗那的内存控制器预取器不发出缓存一致性 *** 作(它们不是’ t发出,直到核心对高速缓存行的请求到达内存控制器).
以上内容记录在BIOS和Kernel Developer’s GuIDe for Family 10h处理器:http://support.amd.com/us/Processor_TechDocs/31116.pdf中
总结以上是内存溢出为你收集整理的linux – 以编程方式禁用AMD系统上的硬件预取全部内容,希望文章能够帮你解决linux – 以编程方式禁用AMD系统上的硬件预取所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)