Неправильный байт в одном модуле ОЗУ / Блокировка области ОЗУ от использования

Неправильный байт в одном модуле ОЗУ / Блокировка области ОЗУ от использования

У меня четыре модуля ОЗУ по 512 МБ на одном сервере. Четвертый модуль ОЗУ показывает ошибку только для одного бита, когда я использую memtest86+ для проверки ОЗУ. Даже когда я меняю ОЗУ в четвертом слоте на другой модуль ОЗУ, я все равно получаю ошибку в ОЗУ в четвертом слоте в том же самом месте. Поэтому я хотел заблокировать один конкретный адрес (или страницу 4 КБ, если необходимо) ОЗУ от использования сервером. На сервере установлена ​​Fedora 11, и он используется только для тестовых целей. На нем не размещаются никакие пользовательские приложения. Есть идеи, как я могу заблокировать использование определенной части ОЗУ? Или что вызывает ошибку в определенном байте независимо от установленного модуля ОЗУ.

решение1

Недавно я узнал, что существует параметр ядра (который нужно указать при загрузке, например, в конфигурации grub)

memmap=[количество]M$[начальное местоположение]M

Вы можете вводить его много раз, чтобы заблокировать части памяти.

например.

memmap=3M$217M

блокирует мегабайты от 217 до 219

решение2

Раньше существовал патч «BadMEM» для Linux, однако для его обновления до текущей версии ядра потребовались бы некоторые усилия.

http://badmem.sourceforge.net/docu/BadMEM-HOWTO.html

решение3

Похоже на возможный плохой слот на материнской плате, как показало ваше тестирование. Я никогда не видел способа обойти это, кроме как просто не использовать этот слот. Насколько мне известно, простого ответа нет. Я полагаю, что можно создать какое-то программное обеспечение, но, как сказал nik, это был бы скорее вопрос SO.

решение4

Вы можете написать расширение ядра, которое при загрузке просто выделит эту страницу и больше ничего не будет делать.

Увы, я не знаю, как это сделать. Когда я работал на IBM'овской системе VM, это было встроено, но это, конечно, не помогает.

Связанный контент