我在一台服务器上有四个512 MB RAM模块。 当我使用memtest86 +来testingRAM时,第四个RAM只显示一位错误。 即使我在第四个插槽与其他RAM交换RAM时,仍然在第四个插槽的RAM中出现错误。 所以我想阻止服务器使用RAM的一个特定的地址(或4kb的页面,如果需要的话)。 服务器有fedora 11,仅用于testing目的。 它不托pipe任何用户应用程序。 任何想法如何我可以阻止某些部分的内存使用? 或者什么导致错误来在特定的字节,而不pipeRAM模块安装。
我最近发现有一个内核参数(例如在grub config中提供,
MEMMAP = [ammount的] M $ [startlocation]中号
您可以多次提供它来locking部分内存。
例如。
MEMMAP = 3M $ 217M
从217到219locking兆字节
曾经有过用于Linux的“BadMEM”补丁,但是需要一点努力才能升级到当前的核心。
您的testing显示,这听起来像是主板上可能存在的坏插槽。 除了没有使用这个插槽,我从来没有看到过这个方法。 据我所知,没有简单的答案。 我想可能会创build一些软件,但是像尼克说的那样,这更像是个问题。
我不认为你可以lock-out一个RAM地址范围的特定部分。
它由您的操作系统的虚拟内存pipe理拥有。
但是,这是一个有趣的应用程序 – 从OS中lockingdynamic内存地址范围。 如果有这样的技术可用(对于任何操作系统),我有兴趣了解它。
如果它不可用,这听起来像是一个有趣的项目尝试。
但是,这将是一个stackoverflow问题。
你可以编写一个内核扩展,在加载的时候,只是分配这个页面,然后别的什么都不做。
唉,我不知道该怎么做。 当我以前在IBM VM系统上工作时,这是内置的,但这当然没有帮助。
正如Trogy所说,这可能是一个主板缺陷,甚至是一个CPU缺陷(尽pipe在这种情况下不太可能)。
我也有同样的问题,但是发现可用的答案令人困惑和不完整,所以我把一步一步的指导放在一起,尽可能less的背景。