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