Il est difficile d'isoler le CPU, je sais, mais les erreurs que je vois suggèrent que c'est le problème.
Ce n'est certainement pas un problème matériel défectueux / cassé . J'ai utilisé Windows 10 toute la journée au cours des derniers jours et cette chose est rapide! Pas de plantage. Plus important encore, j'ai exécuté le vérificateur de mémoire Windows. La mémoire est bonne.
spécifications de la machine
La machine est un tout nouveau 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
isolement vers le noyau linux (?)
J'ai vu les mêmes problèmes sur les deux
- archlinux-2016.08.01-dual.iso
- ubuntu-gnome-16.04.1-desktop-amd64.iso
Pour Arch - le problème n'apparaissait que de manière intermittente au démarrage à partir de la clé USB. J'ai réussi à installer Arch sur une partition ext4 de 100 Go sur le disque. Cette installation a le même problème par intermittence (comme 90% du temps) lors du démarrage. Si je réussis le démarrage, le problème apparaît au hasard après les deux premières commandes de terminal que j'exécute, provoquant finalement un blocage complet.
Pour Ubuntu - la clé USB ne démarre même pas. Je suis immédiatement arrêté par ces mêmes erreurs. Impasse...
Tant d'erreurs ...
Le journal est rempli d'erreurs liées à la mémoire chaque fois que cela se produit, mais les erreurs clés que je vois sont les suivantes:
General protection fault 0000[#1] PREEMPT SMP
RIP kmem_cache_alloc
RIP kmem_cache_alloc_trace
J'ai vu plusieurs fois la même trace de pile pour ces erreurs:
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 continue également de promettre qu'il résout le problème
Correction d'une erreur récursive mais un redémarrage est nécessaire!
Je souhaite que..
intel ucode
J'ai également essayé d'installer le intel-ucode
package dans mon installation Arch. J'ai vu dans les dmesg
journaux que les microcodes ont été mis à jour, mais cela n'a malheureusement pas résolu mon problème.
Quel pourrait être le problème? Comment y remédier?
ÉDITER
Remarque additionnelle.
Les messages de défaut de protection générale et les messages de type «verrouillé détecté» font généralement référence à une CPU. Je l' ai vu CPU0
, CPU1
, CPU2
et CPU3
dans ces messages. Il semble que quelque chose empêche les CPU de s'entendre, comme s'ils étaient tous dans une impasse essayant d'effacer la mémoire cache ou quelque chose.
EDIT2
BIOS mentionné par erreur
Je vois cette information dans certaines erreurs:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
Je ne sais pas si cela est utile à un pro pour comprendre le problème ...
EDIT3
maxcpus = 1
Je cherchais des options de débogage dans la documentation des paramètres du noyau et j'ai trouvémaxcpus
Si je mets max cpu à 1, le problème disparaît. Il semblerait donc que le problème soit une sorte de violation de la mémoire cache partagée.
EDIT3
maxcpus = 1 + Gnome = à nouveau cassé
Bien que cela maxcpus=1
semble faire fonctionner le système avec seulement 1 CPU, j'ai installé gnome puis j'ai exécutésystemctl enable gdm.service
Maintenant, quand je redémarre, je récupère toutes mes erreurs, mais cette fois elles se produisent toutes sur CPU0
Il semble donc que quelque chose provoque toujours une violation de mémoire, même avec le 1 processeur.
EDIT4
nolapic
Donc, l'utilisation nolapic
semble tout faire "fonctionner"
MAIS en utilisant nolapic
, je désactive efficacement mon autre CPU et tout le multithreading dans le 1 CPU fonctionnel.
J'essaie de l'utiliser pour OpenMP, et après avoir démarré avec nolapic
, OpenMP et le noyau linux ne peuvent trouver qu'un seul thread, 1 CPU. Ça craint!
J'ai aussi essayé intel_idle.max_cstate=0
et 1
, 2
etc. Mais cela ne résout pas le problème de démarrage.
Quoi d'autre pourrait empêcher le noyau d'utiliser ma machine multicœur?
nomodeset
et nouveau.mode=0
- je ne sais pas si c'est similaire)
maxcpus
j'ai trouvé - je l'ai mis à 1 et le problème disparaît ... Mais maintenant je ne peux utiliser qu'un seul processeur? :(
nomodeset nouveau.modeset=0
ensemble et si cela ne fonctionne pas, essayeznomodeset i915.modeset=0 nouveau.modeset=0