É difícil isolar a CPU, eu sei, mas os erros que estou vendo sugerem que esse é o problema.
Isso definitivamente não é um problema de hardware com defeito / quebrado . Eu tenho executado o Windows 10 durante todo o dia nos últimos dias e essa coisa está indo rápido! Sem falhas. Mais importante, eu corri o verificador de memória do Windows. A memória é boa.
especificações da máquina
A máquina é uma novíssima 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 para o kernel do Linux (?)
Eu vi os mesmos problemas em ambos
- archlinux-2016.08.01-dual.iso
- ubuntu-gnome-16.04.1-desktop-amd64.iso
Para o Arch - o problema só aparecia intermitentemente na inicialização do dispositivo USB. Eu consegui obter Arch instalado em uma partição ext4 de 100GB na unidade. Essa instalação tem o mesmo problema intermitentemente (como 90% do tempo) durante a inicialização. Se eu passar a inicialização, o problema aparece aleatoriamente após o primeiro par de comandos do terminal que eu executar, causando eventualmente um impasse completo.
Para o Ubuntu - o pendrive USB nem sequer inicializa. Eu fico parado por esses mesmos erros imediatamente. Deadlock ...
Tantos erros ...
A revista está cheia de erros relacionados à memória sempre que isso acontece, mas os principais erros que estou vendo são:
-
General protection fault 0000[#1] PREEMPT SMP
-
RIP kmem_cache_alloc
-
RIP kmem_cache_alloc_trace
Eu já vi alguns dos mesmos rastreamentos de pilha várias vezes para esses erros:
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
O Linux também continua prometendo que está consertando o problema
Fixing recursive fault but reboot is needed!
Eu desejo ..
intel ucode
Eu também tentei instalar o pacote intel-ucode
em minha instalação do Arch. Eu vi no dmesg
logs que os microcodes foram atualizados, mas que infelizmente não resolveram o meu problema.
Qual poderia ser o problema? Como consertar isso?
EDITAR
Nota adicional.
As mensagens de falha de proteção geral e as mensagens do tipo "bloquear detectado" geralmente fazem referência a uma CPU. Eu vi CPU0
, CPU1
, CPU2
e CPU3
nessas mensagens. Parece que algo está fazendo com que as CPUs não se dêem bem, como se estivessem em um impasse tentando limpar a memória cache ou algo assim.
EDIT2
BIOS mencionado em erro
Eu vejo esse bit de informação em alguns erros:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
Não tenho certeza se isso é útil para um profissional no entendimento do problema ...
EDIT3
maxcpus = 1
Eu estava procurando por opções de depuração na documentação do kernel params e encontrei maxcpus
Se eu definir o máximo de cpu para 1, o problema desaparece. Assim, parece que o problema é algum tipo de violação de memória cache compartilhada.
EDIT3
maxcpus = 1 + gnomo = quebrado novamente
Embora maxcpus=1
parecesse fazer o sistema funcionar apenas com 1 CPU, instalei o gnome e depois executei systemctl enable gdm.service
Agora, quando eu reinicio, recebo todos os meus erros novamente, mas dessa vez todos eles estão acontecendo no CPU0
Portanto, parece que algo ainda está causando uma violação de memória, mesmo com a CPU 1.
EDIT4
nolapico
Usar nolapic
parece ter tudo "funcionando"
MAS usando nolapic
, desabilitei efetivamente minha outra CPU e todo multithreading na 1 CPU em funcionamento.
Estou tentando usar isso para o OpenMP e, após a inicialização com nolapic
, o OpenMP e o kernel do linux podem encontrar apenas 1 thread, 1 CPU. Isso é uma merda!
Eu também tentei intel_idle.max_cstate=0
e 1
, 2
, etc. Mas isso não corrige o problema de inicialização.
O que mais poderia fazer com que o kernel não utilizasse minha máquina multi-core?