Memtester produziu a seguinte resposta,
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 10240MB (10737418240 bytes)
got 10240MB (10737418240 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : testing 1FAILURE: possible bad address line at offset 0x12325b7a8.
Skipping to next test...
Random Value : ok
FAILURE: 0xa003776ad640ac0c != 0xe003776ad640ac0c at offset 0x7a4f2680.
Compare XOR : FAILURE: 0xe7139f89d94112c0 != 0x27139f89d94112c0 at offset 0x7a4f2680.
FAILURE: 0x4e53ee3a9704bdf5 != 0x4a53ee3a9704bdf5 at offset 0x950b4930.
Compare SUB : FAILURE: 0x96ecab120464e9c0 != 0xd6ecab120464e9c0 at offset 0x7a4f2680.
FAILURE: 0x7f67022cef637b99 != 0x2b67022cef637b99 at offset 0x950b4930.
FAILURE: 0x96c38c9f6e6dd229 != 0xd6c38c9f6e6dd229 at offset 0xe40d2b50.
Compare MUL : FAILURE: 0x00000001 != 0x00000002 at offset 0x69394a08.
FAILURE: 0x00000001 != 0x00000000 at offset 0x950b4930.
FAILURE: 0x400000000000001 != 0x00000001 at offset 0xea6b07a8.
FAILURE: 0x400000000000000 != 0x00000000 at offset 0xfb853610.
FAILURE: 0x00000000 != 0x800000000000000 at offset 0x12bf3ed10.
Compare DIV : FAILURE: 0x777fd9f1ddc6c1cd != 0x777fd9f1ddc6c1cf at offset 0x69394a08.
FAILURE: 0x777fd9f1ddc6c1cd != 0x7f7fd9f1ddc6c1cd at offset 0x12bf3ed10.
Compare OR : FAILURE: 0x367600d19dc6c040 != 0x367600d19dc6c042 at offset 0x69394a08.
FAILURE: 0x367600d19dc6c040 != 0x767600d19dc6c040 at offset 0x7a4f2680.
FAILURE: 0x367600d19dc6c040 != 0x3e7600d19dc6c040 at offset 0x12bf3ed10.
Compare AND : Sequential Increment: ok
Solid Bits : testing 0FAILURE: 0x4000000000000000 != 0x00000000 at offset 0x12325b7a8.
Block Sequential : testing 0FAILURE: 0x400000000000000 != 0x00000000 at offset 0xfb853610.
Checkerboard : testing 1FAILURE: 0xaaaaaaaaaaaaaaaa != 0xeaaaaaaaaaaaaaaa at offset 0x7a4f2680.
Bit Spread : testing 1FAILURE: 0xdffffffffffffff5 != 0xfffffffffffffff5 at offset 0x102e353e8.
Bit Flip : testing 0FAILURE: 0x4000000000000001 != 0x00000001 at offset 0x12325b7a8.
Walking Ones : testing 40FAILURE: 0xdffffeffffffffff != 0xfffffeffffffffff at offset 0x102e353e8.
Walking Zeroes : testing 0FAILURE: 0x400000000000001 != 0x00000001 at offset 0xea6b07a8.
FAILURE: 0x400000000000001 != 0x00000001 at offset 0xfb853610.
8-bit Writes : -FAILURE: 0xfeefa0a577dfa825 != 0xdeefa0a577dfa825 at offset 0x4bd600e8.
16-bit Writes : -FAILURE: 0xf3dfa5fff79e950b != 0xf7dfa5fff79e950b at offset 0x2b04cca8.
FAILURE: 0x3ffb3fc56e7532c1 != 0x7ffb3fc56e7532c1 at offset 0xe40d2b50.
Done.
Claramente, isso mostra memória ruim. É possível marcar essa memória como ruim no kernel ou hipervisor e continuar usando? Ou é colocar no arquivo 13 e comprar reposição?
A menos que você possa detectar erros razoavelmente rapidamente, por exemplo , com memória ECC ou reinicializando regularmente com
memtest
, é melhor substituir o módulo. Você corre o risco de corrupção silenciosa de dados.Você pode dizer ao kernel para ignorar a memória reservando-a, com a
memmap
opção (consulte a documentação do kernel para obter detalhes):A parte difícil aqui é descobrir quais intervalos de endereço reservar;
memtester
fornece endereços de seu espaço de endereço virtual, que não correspondem aos endereços físicos necessários paramemmap
.A abordagem mais simples é inicializar com
memtest
, você verá algo assimO kernel então desativará o intervalo que detecta como ruim. Você pode continuar inicializando com
memtest
ou usar os intervalos de endereços reservados para construirmemmap
argumentos.Você pode usar o patch BadRAM . Mas eu sugiro muito mudar o módulo. A memória pode piorar e a corrupção silenciosa de dados é um problema muito sério aqui. Especialmente se estiver executando bancos de dados ou criptografias, isso pode ser fatal muito em breve...