Byte inválido em um módulo de RAM / área de bloco de RAM de ser usado

5

Eu tenho quatro módulos de 512 MB de RAM em um servidor. A quarta RAM está mostrando erro por apenas um bit quando uso o memtest86 + para testar as RAMs. Mesmo quando eu trocar a RAM no quarto slot com alguma outra RAM eu ainda recebo erro na RAM no quarto slot no mesmo local exato. Então, eu queria bloquear um endereço específico (ou página de 4kb, se necessário) de RAM de ser usado pelo servidor. O servidor está tendo o fedora 11 e é usado apenas para fins de teste. Não está hospedando nenhum aplicativo de usuário. Alguma idéia de como eu posso bloquear o uso de determinada parte da RAM? ou sobre o que está causando erro em determinado byte, independentemente do módulo de RAM instalado.

    
por Saurabh Barjatiya 11.07.2009 / 08:31

7 respostas

6

Eu descobri recentemente que existe um parâmetro do kernel (para fornecer na inicialização, na configuração do grub, por exemplo)

memmap = [quantidade] M $ [startlocation] M

Você pode fornecer várias vezes para bloquear partes da memória.

por exemplo,

memmap = 3 milhões de dólares 217 milhões

bloqueia megabytes de 217 a 219

    
por 29.10.2010 / 09:22
3

Costumava haver o patch "BadMEM" para o Linux, no entanto, seria necessário um esforço para atualizá-lo para um keernel atual.

link

    
por 11.07.2009 / 10:37
2

Isso soa como um possível slot ruim na placa-mãe, como mostrou seu teste. Eu nunca vi uma maneira de contornar isso além de simplesmente não usar esse slot. Para meu conhecimento, não há resposta fácil. Eu suponho que algum software poderia ser criado, mas como o nik disse, isso seria mais uma pergunta SO.

    
por 11.07.2009 / 10:03
1

Eu não acho que você pode lock-out partes específicas de um intervalo de endereços de RAM.
É de propriedade do gerenciamento de memória virtual do seu sistema operacional.

No entanto, esta é uma aplicação interessante - para bloquear os intervalos de endereços de memória dinâmica do SO. Se houver essa técnica disponível (para qualquer sistema operacional), estou interessado em conhecê-la.

Se não estiver disponível, isso parece ser um projeto interessante para tentar.
Mas isso seria uma questão de stackoverflow.

    
por 11.07.2009 / 08:56
0

Você poderia escrever uma extensão de kernel que, quando carregada, apenas alocaria essa página e, em seguida, não fazia mais nada.

Infelizmente, não sei como fazer isso. Quando eu costumava trabalhar no sistema VM IBMs, isso foi construído, mas isso não ajuda, claro.

    
por 11.07.2009 / 10:11
0

Como Trogy disse, isso pode ser um defeito da placa-mãe, ou até mesmo um defeito na CPU (embora pouco provável neste caso).

    
por 11.07.2009 / 10:19
0

Eu tive esse mesmo problema, mas achei as respostas disponíveis confusas e incompletas, então montei um guia passo-a-passo, assumindo o mínimo de conhecimento possível.

  1. Execute o Memtest86 + na saída “Badram” (de preferência de um meio externo inicializável). Quando o Memtest86 + for iniciado, digite:
  2. “c” (“configuração”), então
  3. “4” (“Modo Relatório de Erros”), então
  4. “3” (“Bad RAM Patterns”), então
  5. “0” (“Continuar”).
  6. Copie a saída que segue as linhas que começam com "badram=".
  7. Abra um terminal (linha de comando).
  8. Altere para o diretório em que o arquivo "grub" está localizado. Por exemplo, "cd / etc / default".
  9. Com privilégios de "root", use um editor de texto para abrir o arquivo "grub" (se você não estiver logado como "root", use "sudo". Será solicitada a senha "root".): “Sudo nano grub” (Este exemplo muda o usuário para “root” e abre o arquivo “grub” com o editor de texto “nano”).
  10. Encontre a seção que descreve o memtest.
  11. Descomente a última linha (exclua o caractere especial no início da linha, como “#”, “& gt ;,” ou “!”). Isso o torna ativo (por exemplo, “# GRUB_BADRAM =” torna-se “GRUB_BADRAM =”.).
  12. Substitua os endereços de exemplo (seguindo “GRUB_BADRAM =”) pela saída “badram =” que você copiou do Memtest86 + (por exemplo, “0x98f548a0,0xfffffffc”).
  13. Salve (ou "escreva") suas alterações.
  14. No terminal (linha de comando), atualize o arquivo “grub.cfg”, digitando “sudo update-grub”.
  15. Reinicialize.
por 22.11.2014 / 19:36