Ich weiß, es ist schwer, die CPU zu isolieren, aber die Fehler, die ich sehe, deuten darauf hin, dass dies das Problem ist.
Dies ist definitiv kein fehlerhaftes / defektes Hardwareproblem . Ich habe in den letzten Tagen den ganzen Tag Windows 10 ausgeführt und dieses Ding flippt schnell! Kein Absturz. Noch wichtiger ist, dass ich die Windows-Speicherprüfung ausgeführt habe. Das Gedächtnis ist alles gut.
Maschinenspezifikationen
Die Maschine ist eine brandneue Lenovo Yoga 710 15 "
x64
Intel i7-6500 CPU @ 2.50 GHz, 2601 Mhz, 2 Cores, 4 Logical Processors
SMBIOS Version 2.8
BIOS Mode UEFI
16.0 GB DDR4 Ram
256 MB SSD
Isolieren zum Linux-Kernel (?)
Ich habe bei beiden die gleichen Probleme gesehen
- archlinux-2016.08.01-dual.iso
- ubuntu-gnome-16.04.1-desktop-amd64.iso
Für Arch - das Problem trat nur zeitweise beim Booten vom USB-Stick auf. Ich habe es geschafft, Arch auf einer 100 GB ext4-Partition auf dem Laufwerk zu installieren. Diese Installation hat das gleiche Problem zeitweise (wie in 90% der Fälle) während des Startvorgangs. Wenn ich den Start bestanden habe, wird das Problem nach den ersten von mir ausgeführten Terminalbefehlen zufällig angezeigt, was schließlich zu einem vollständigen Deadlock führt.
Für Ubuntu - der USB-Stick bootet nicht einmal. Ich werde sofort von denselben Fehlern gestoppt. Sackgasse...
So viele Fehler ...
Das Tagebuch ist in diesem Fall mit speicherbezogenen Fehlern gefüllt, aber die wichtigsten Fehler, die ich sehe, sind:
General protection fault 0000[#1] PREEMPT SMP
RIP kmem_cache_alloc
RIP kmem_cache_alloc_trace
Ich habe einige der gleichen Stapelspuren mehrmals für diese Fehler gesehen:
rbt_memtype_copy_nth_element
on_each_cpu
flusH_tbl_kernel_range
__purge_umap_area_lazy
um_unmam_aliases
change_page_attr_set_clr
set_memory_ro
frob_text.isra
module_enable_ro
kobject_create
kobject_create_and_add
load_module
__symbol_put
kernel_read
sys_finit_module
entry_SYSCALL_64_fastpath
kmem_cache_alloc_trace
allocate_cgrp_cset_links
...
sys_write
entry_SYSCALL-64_fastpath
Linux verspricht auch weiterhin, das Problem zu beheben
Behebung eines rekursiven Fehlers, aber ein Neustart ist erforderlich!
Ich wünsche..
Intel UCode
Ich habe auch versucht, das intel-ucode
Paket in meiner Arch-Installation zu installieren. Ich habe in den dmesg
Protokollen gesehen, dass die Mikrocodes aktualisiert wurden, aber das hat mein Problem leider nicht gelöst.
Was könnte das Problem sein? Wie kann es behoben werden?
BEARBEITEN
Zusätzliche Anmerkung.
Die allgemeinen Schutzfehlermeldungen und Meldungen vom Typ "Sperrung erkannt" verweisen normalerweise auf eine CPU. Ich habe gesehen CPU0
, CPU1
, CPU2
und CPU3
in diesen Nachrichten. Es scheint, als ob etwas dazu führt, dass die CPUs nicht miteinander auskommen, als ob sie alle in einem Deadlock sind und versuchen, den Cache-Speicher oder etwas anderes zu löschen.
EDIT2
BIOS irrtümlich erwähnt
Ich sehe diese Information in einigen Fehlern:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
Ich bin mir nicht sicher, ob dies für einen Profi hilfreich ist, um das Problem zu verstehen ...
EDIT3
maxcpus = 1
Ich habe nach Debugging-Optionen in der Kernel-Parameter-Dokumentation gesucht und gefundenmaxcpus
Wenn ich die maximale CPU auf 1 setze, verschwindet das Problem. Es scheint also, dass das Problem eine Art Verletzung des gemeinsam genutzten Cache-Speichers ist.
EDIT3
maxcpus = 1 + Gnome = wieder kaputt
Obwohl maxcpus=1
das System nur mit 1 CPU zu funktionieren schien, installierte ich gnome und lief dannsystemctl enable gdm.service
Wenn ich jetzt neu starte, werden alle meine Fehler wieder angezeigt, aber diesmal treten sie alle auf CPU0 auf
Es scheint also, dass selbst bei 1 CPU immer noch etwas eine Speicherverletzung verursacht.
EDIT4
nolapic
Die Verwendung nolapic
scheint also alles "zum Laufen zu bringen"
ABER durch die Verwendung nolapic
deaktiviere ich effektiv meine andere CPU und alle Multithreading in der 1 funktionierenden CPU.
Ich versuche dies für OpenMP zu verwenden und nach dem Booten mit nolapic
können OpenMP und der Linux-Kernel nur 1 Thread, 1 CPU finden. Das ist Scheiße!
Ich habe auch versucht, intel_idle.max_cstate=0
und 1
, 2
etc. Aber das behebt das Boot-Problem nicht.
Was könnte dazu führen, dass der Kernel meinen Multi-Core-Computer nicht nutzt?
nomodeset
und nouveau.mode=0
- nicht sicher, ob das ähnlich ist)
maxcpus
- ich habe es auf 1 gesetzt und das Problem verschwindet ... Aber jetzt kann ich nur einen Prozessor verwenden? :(
nomodeset nouveau.modeset=0
zusammen aus und wenn das nicht funktioniert, versuchen Sie esnomodeset i915.modeset=0 nouveau.modeset=0