У меня четыре модуля ОЗУ по 512 МБ на одном сервере. Четвертый модуль ОЗУ показывает ошибку только для одного бита, когда я использую memtest86+ для проверки ОЗУ. Даже когда я меняю ОЗУ в четвертом слоте на другой модуль ОЗУ, я все равно получаю ошибку в ОЗУ в четвертом слоте в том же самом месте. Поэтому я хотел заблокировать один конкретный адрес (или страницу 4 КБ, если необходимо) ОЗУ от использования сервером. На сервере установлена Fedora 11, и он используется только для тестовых целей. На нем не размещаются никакие пользовательские приложения. Есть идеи, как я могу заблокировать использование определенной части ОЗУ? Или что вызывает ошибку в определенном байте независимо от установленного модуля ОЗУ.
решение1
Недавно я узнал, что существует параметр ядра (который нужно указать при загрузке, например, в конфигурации grub)
memmap=[количество]M$[начальное местоположение]M
Вы можете вводить его много раз, чтобы заблокировать части памяти.
например.
memmap=3M$217M
блокирует мегабайты от 217 до 219
решение2
Раньше существовал патч «BadMEM» для Linux, однако для его обновления до текущей версии ядра потребовались бы некоторые усилия.
решение3
Похоже на возможный плохой слот на материнской плате, как показало ваше тестирование. Я никогда не видел способа обойти это, кроме как просто не использовать этот слот. Насколько мне известно, простого ответа нет. Я полагаю, что можно создать какое-то программное обеспечение, но, как сказал nik, это был бы скорее вопрос SO.
решение4
Вы можете написать расширение ядра, которое при загрузке просто выделит эту страницу и больше ничего не будет делать.
Увы, я не знаю, как это сделать. Когда я работал на IBM'овской системе VM, это было встроено, но это, конечно, не помогает.