E 'difficile isolare la CPU, lo so, ma gli errori che vedo suggeriscono che sia questo il problema.
Questo non è sicuramente un problema hardware difettoso / rotto . Ho eseguito Windows 10 tutto il giorno negli ultimi giorni e questa cosa sta girando velocemente! Nessun crash. Ancora più importante, ho eseguito il controllo della memoria di Windows. La memoria è buona.
specifiche della macchina
La macchina è un nuovissimo 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
isolando al kernel linux (?)
Ho visto gli stessi problemi su entrambi
- archlinux-2016/08/01-dual.iso
- ubuntu-gnome-16.04.1-desktop-amd64.iso
Per Arch: il problema si presentava in modo intermittente all'avvio dalla chiavetta USB. Sono riuscito a far installare Arch su una partizione ext4 da 100 GB sull'unità. Tale installazione presenta lo stesso problema in modo intermittente (come il 90% delle volte) durante l'avvio. Se vengo superato l'avvio, il problema appare in modo casuale dopo i primi due comandi di terminale che eseguo, causando infine un deadlock completo.
Per Ubuntu - la chiavetta USB non si avvia nemmeno. Vengo immediatamente fermato da questi stessi errori. Deadlock ...
Così tanti errori ...
Il diario è pieno di errori relativi alla memoria ogni volta che ciò accade, ma gli errori chiave che vedo sono:
General protection fault 0000[#1] PREEMPT SMP
RIP kmem_cache_alloc
RIP kmem_cache_alloc_trace
Ho visto alcune delle stesse tracce dello stack più volte per questi errori:
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 continua anche a promettere che sta risolvendo il problema
Correzione dell'errore ricorsivo ma è necessario riavviare!
Spero che..
Intel ucode
Ho anche provato a installare il intel-ucode
pacchetto nella mia installazione di Arch. Nei dmesg
registri ho visto che i microcodici sono stati aggiornati, ma che purtroppo non ha risolto il mio problema.
Quale potrebbe essere il problema? Come posso ripararlo?
MODIFICARE
Nota aggiuntiva
I messaggi di errore di protezione generale e i messaggi di tipo "blocco rilevato" fanno generalmente riferimento a una CPU. Ho visto CPU0
, CPU1
, CPU2
e CPU3
in questi messaggi. Sembra che qualcosa stia facendo sì che le CPU non vadano d'accordo, come se fossero tutte in un deadlock nel tentativo di svuotare la memoria cache o qualcosa del genere.
EDIT2
BIOS menzionato per errore
Vedo questo bit di informazioni in alcuni errori:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
Non sono sicuro che sia utile a un professionista nel comprendere il problema ...
Edit3
maxcpus = 1
Stavo cercando le opzioni di debug nella documentazione dei parametri del kernel e ho trovatomaxcpus
Se imposto max cpu su 1, il problema scompare. Quindi sembra che il problema sia una sorta di violazione della memoria cache condivisa.
Edit3
maxcpus = 1 + Gnome = nuovamente rotto
Anche se maxcpus=1
sembrava far funzionare il sistema solo con 1 CPU, ho installato gnome e poi ho eseguitosystemctl enable gdm.service
Ora, quando riavvio, ricevo nuovamente tutti i miei errori, ma questa volta si verificano tutti su CPU0
Quindi sembra che qualcosa stia ancora causando una violazione della memoria anche con la 1 CPU.
edit4
nolapic
Quindi l'utilizzo nolapic
sembra che tutto funzioni "funzionando"
MA usando nolapic
, disabilito effettivamente la mia altra CPU e tutto il multithreading nella 1 CPU funzionante.
Sto provando a usarlo per OpenMP e dopo l'avvio con nolapic
OpenMP e il kernel Linux riesco a trovare solo 1 thread, 1 CPU. Che schifo!
Ho anche provato intel_idle.max_cstate=0
e 1
, 2
ecc. Ma questo non risolve il problema di avvio.
Cos'altro potrebbe impedire al kernel di utilizzare la mia macchina multi-core?
nomodeset
e nouveau.mode=0
- non sono sicuro che sia simile)
maxcpus
ho trovato - l'ho impostato su 1 e il problema scompare ... Ma ora posso usare solo un procesor? :(
nomodeset nouveau.modeset=0
insieme e se non funziona, provanomodeset i915.modeset=0 nouveau.modeset=0