Kesalahan memori dengan Ubuntu tetapi tidak dengan MemTest86 +

8

Saya mendapat beberapa kesalahan btrfs dan ext4. Setelah memutuskan untuk menguji RAM saya, saya mengalami kesalahan pengulangan berikut memtester. Saya selalu mendapatkan kesalahan serupa setelah sedikit menjalankan memtester. Biasanya dalam satu jam, tetapi butuh 4-5 jam dalam satu waktu.

RAM komputer saya disolder. Saya mendapat slot kosong tambahan. Tidak ada pengaturan di BIOS untuk menonaktifkan RAM terpasang.

Saya sudah berlari:

  • Memtest86 + selama 8 pass (~ 8 jam)
  • MemTest86 selama 18 berlalu (~ 9 jam)
  • memtesterdan stressapptestpada Fedora 27 default, diinstal pada USB stick (~ 10 jam)
  • memtesterdan stressapptestpada Ubuntu 17.10 Live default (~ 2 jam)
  • memtesterdan stressapptestpada Ubuntu 17.10 pada stik USB (~ 8 jam)
  • # debsums --changed satu-satunya file yang diubah adalah gambar tema.

Mereka tidak mencetak kesalahan.

Saya menggunakan Ubuntu 17.10 (ditingkatkan dari 17.04) dengan kernel default. Kernel tidak tercemar. Ini adalah laptop ASUS dengan Intel Haswell i3.

  • Juga diuji dengan Linux 4.14.13 dan 4.15.0-rc3, rc4, mainline.
  • Juga diuji dengan paket intel-microcode dibersihkan.

Kesalahan dapat direproduksi baik Nouveau dinonaktifkan atau diaktifkan, tidak ada driver biner nvidia yang dimuat.

Daftar hitam modul-modul berikut: mtd intel_spi_platform intel_spikarena mereka tidak memuat pada instalasi Fedora 27 default dan mereka tampaknya merusak beberapa laptop Lenova. Kesalahan belum berhenti.

uname -aoutput

Linux hostname 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

# lsmodoutput

https://paste.ubuntu.com/26222245/

# lsmodOutput Fedora 27

https://paste.ubuntu.com/26226473/

Situasi saat ini

Saya telah memasukkan HDD saya ke laptop (laptop cadangan) yang saya kenal baik dan menjalankan tes di sana. Saya mendapat kesalahan. Sekarang saya cukup yakin ini adalah masalah perangkat lunak. Saya tidak pernah dapat memicu kesalahan pada laptop saya dengan Ubuntu yang baru atau dengan Fedora yang mencoba berjam-jam.

Apa yang harus saya lakukan?

Contoh kesalahan:

Loop 6:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : testing 262
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94000.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94008.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94010.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94018.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94020.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94028.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94030.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94038.
  Walking Ones        : ok         
  Walking Zeroes      : ok         
  8-bit Writes        : ok
  16-bit Writes       : ok

Kesalahan serupa dengan kedua slot RAM penuh:

Loop 1:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : testing   4
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80000.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80008.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80010.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80018.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80020.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80028.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80030.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80038.
  Bit Flip            : setting 141

Kesalahan pada stressapptest:

Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e000(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e008(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e010(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e018(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e020(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e028(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e030(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e038(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a

Saya menduga entah bagaimana konfigurasi Ubuntu dikombinasikan dengan perangkat keras Laptop saya yang harus disalahkan atas kesalahan ini. Hampir setiap waktu dalam kemasan delapan.

Info tidak penting, terkait longgar di bawah ini

Tentang kesalahan btrf; Saya menggunakan 17,04. Saya sudah bertanya-tanya di irc btrfs '. Saya telah diberitahu bahwa itu bisa jadi kesalahan perangkat keras atau kesalahan manajemen memori. Sebagian dari halaman metadata btrf diisi dengan nol, sama seperti yang saya alami sekarang. Saya menjalankan memtester hanya beberapa pass, beralih ke ext4 dan menyalahkan driver biner nvidia.

Perintah dan parameternya yang saya gunakan:

# stressapptest -M 10000 -s 1800

10000 adalah memori yang tersedia yang bisa saya uji. Saya mendapatkannya melalui free -m-s` adalah detik.

# memtester 4096

CPU laptop memiliki 2 core jadi saya biasanya memulai dua instance. 4096 adalah setengah dari memori yang tersedia saat ini melaluifree -m

Artyom
sumber
1
Saya akan mengganti RAM yang buruk, tetapi saya tidak tahu apakah itu mungkin dengan chip RAM yang disolder. Apakah komputer cukup baru untuk diganti dalam jaminan?
sudodus
@sudodus Ya, jaminannya belum kedaluwarsa. Saya akan RMA jika saya tidak dapat menemukan solusi. Saya telah menemukan bahwa meskipun tidak ada cara resmi, orang telah menemukan cara untuk menonaktifkan jantan yang disolder pada beberapa laptop melalui melompati beberapa titik uji.
Artyom
Untuk lebih yakin coba memtest86+dari setiap instalasi Ubuntu LiveCD.
N0rbert
@ N0rbert Saya melakukan beberapa tes dengan memtest86 - yang menguntungkan - dengan hasil negatif. Tapi mereka pendek -4 reps-, aku akan melakukan tes semalam malam ini.
Artyom
2
@sudodus, saya percaya memtest86 + dapat menguji ingatannya sendiri, itu seharusnya tidak menjadi masalah banyak. Ya saya telah memperbaiki partisi ext4 saya beberapa kali karena rusak mungkin karena kesalahan terkait memori. Sayangnya saya tidak dapat memperbaiki partisi btrfs saya karena entah bagaimana metadata rusak sebelum ditulis ke disk dan partisi btrfs saya mungkin menyebar dengan btrfs scrub dan merusak sebagiannya.
Artyom

Jawaban:

1

Jawaban yang dihapus sudah dekat

Sebuah jawaban telah dihapus pada T&J ini:

Apakah Anda sudah mencoba menginstal ulang ubuntu karena kedengarannya seperti kegagalan manajemen memori tingkat OS

Jawaban saya serupa karena melibatkan manajemen memori tingkat sangat rendah; KASLR di tingkat Kernel.

Apa yang dilakukan KASLR

KASLR singkatan K Ernel A ddress S kecepatan L ayout R andomization. Saya belum pernah mendengarnya diucapkan dengan lantang tetapi dalam pikiran saya saya mengucapkannya "Casler". Pikirkan hantu ramah di mesin. KASLR adalah tindakan pengamanan untuk mengacak lokasi modul kernel mana yang berada. Teorinya adalah kernel lebih sulit untuk diretas ketika Anda tidak dapat mengandalkan sedikit kode yang sama selalu berada di tempat memori yang sama.

Operasi KASLR dapat dianggap sebagai kebalikan dari penguji memori yang berulang kali membaca dan menulis ke lokasi memori yang sama mengharapkan TIDAK ADA PERUBAHAN. Ini menjadi berlawanan, itu menarik saya (perhatikan idiom), untuk melakukan pencarian google pada KASLR dan kesalahan memori. Seseorang khususnya yang tampaknya tidak terkait mungkin pantas menerima pesan tentang github yang terhubung ke T&J ini. Alasannya karena mereka pikir hanya merekalah yang terpengaruh oleh pengalihan alamat memori (jika saya membaca utas mereka dengan benar). Tiga hit pertama berasal dari RedHat yang saya benci untuk ditautkan karena situs web mereka adalah posting sebagian untuk mendapatkan robot pencarian google dan kemudian mereka membuat Anda membayar untuk membaca.

Ada masalah yang diketahui saat KASLR memuat kernel "stuff" ke tengah peta memori yang seharusnya tidak dilakukan. Sayangnya saya tidak dapat mengingat kembali tautan yang saya temukan minggu lalu untuk dimasukkan dalam jawaban malam ini. Tautan memiliki tambalan / solusi untuk mengarahkan KASLR untuk tidak menggunakan lokasi memori tertentu.

Setelah mengkonfirmasi masalah yang diketahui dengan KASLR dan lokasi memori saya berkomentar di bawah pertanyaan untuk menonaktifkannya KASLR dan menjalankan kembali tes memori. Sebuah jawaban menyatakan sepertinya berhasil, jadi saya memposting jawaban ini.

Cara menonaktifkan KASLR

Walaupun saya telah menggunakan opsi baris perintah kernel grub "kaslr" selama beberapa tahun sekarang, itu menjadi default kernel sejak setidaknya versi 4.12 . Untuk menghilangkan KASLR dari memuat gunakan edit /etc/default/grubdan ubah baris ini:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

Anda mungkin memiliki opsi lain selain "tenang" dan "percikan". Langkah penting adalah menambahkan "nokaslr" dan meninggalkan opsi lain di tempatnya.

Kemudian simpan file dan jalankan:

sudo update-grub

Tentu saja cara lain untuk menonaktifkan KASLR adalah dengan menggunakan Kernel lama seperti 4.4.0 di Ubuntu 16.04.1 ketika KASLR tidak secara otomatis disertakan.

WinEunuuchs2Unix
sumber
0

Masalahnya sangat terdengar seperti korupsi bit acak dari RAM. Dalam pengalaman saya, MemTest86 adalah tes "terlalu mudah" untuk perangkat keras. Ini akan menemukan memori yang benar-benar buruk, tetapi sedikit masalah akan sering tidak diperhatikan.

Jika Anda ingin tahu apakah ingatan Anda bagus, coba jalankan Prime95 dalam mode swa-uji / penyiksaan yang dikonfigurasi untuk menggunakan RAM sebanyak mungkin.

Tes bagus lainnya adalah menjalankan uji rowhammer dua sisi selama beberapa jam.

Saya percaya bahwa jika Prime95 dan rowhammer dua sisi tidak dapat menemukan masalah dengan memori Anda, itu mungkin berfungsi dengan benar. Namun, hanya menjalankan MemTest86, mengkompilasi program, menginstal OS, bermain game mungkin tampak berfungsi bahkan jika memori Anda sedikit buruk (pernah ada, melakukan itu - dan mendapat data yang rusak dalam jangka panjang).

Mikko Rantalainen
sumber