linux – memtest86测试用于运行自身的内存吗?

linux – memtest86测试用于运行自身的内存吗?,第1张

概述其中一个常见的服务器故障情况是坏DRAM,有时即使使用ECC内存也是如此. memtest86是诊断DRAM问题最有用的工具之一.当它在内存开始时加载自身时,我一直想知道memtest86是否会检查内存中加载memtest86的部分. 分配给memtest86的内存是否小到无关紧要,或者memtest86是否可能错过DRAM中的缺陷,因为它无法测试它所在的内存位置? 显然,memtest86无法测 其中一个常见的服务器故障情况是坏DRAM,有时即使使用ECC内存也是如此.

memtest86是诊断DRAM问题最有用的工具之一.当它在内存开始时加载自身时,我一直想知道memtest86是否会检查内存中加载memtest86的部分.

分配给memtest86的内存是否小到无关紧要,或者memtest86是否可能错过DRAM中的缺陷,因为它无法测试它所在的内存位置?

解决方法 显然,memtest86无法测试当前包含memtest86可执行代码的内存区域(但如果该区域存在内存错误,则测试本身很可能会崩溃).但是,memtest86能够在运行时将自己的代码重定位到不同的地址,并且通过使用这个技巧,它能够测试固件(B IOS)允许使用的所有内存 – 只是不能一次完成.

此代码重定位在memtest86源代码存档中的README.background中描述(文件稍微过时 – 例如,它指出用于memtest86代码的地址是0x2000和0x200000,但源中定义的低地址是实际上是0x10000,高地址是0x2000000或0x300000,具体取决于机器中的内存量).

但即使使用此重定位技巧,memtest86仍无法测试所有内存,原因如下:

>通常,固件(BIOS)保留一些RAM区域供自己使用(例如,ACPI表).虽然可以通过cpu访问这些RAM区域,但将任何内容写入其中都可能导致不可预测的行为.
>某些部分RAM用于System Management Mode,甚至无法从特权SMM代码之外的cpu访问.>由于传统PC内存布局的怪癖,因此无法访问640K和1M之间的RAM地址范围(某些RAM可能会用作BIOS ROM和SMM的阴影,其他部分可能完全无法访问).

总结

以上是内存溢出为你收集整理的linux – memtest86测试用于运行自身的内存吗?全部内容,希望文章能够帮你解决linux – memtest86测试用于运行自身的内存吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存