CPU를 분리하기는 어렵지만, 내가 본 오류는 이것이 문제임을 시사합니다.
이것은 고장 나거나 고장난 하드웨어 문제가 아닙니다 . 지난 며칠 동안 Windows 10을 하루 종일 실행 해 왔으며이 일은 매우 빠릅니다! 충돌하지 않습니다. 더 중요한 것은 Windows 메모리 검사기를 실행했습니다. 기억은 모두 좋다.
기계 사양
이 기계는 새로운 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
리눅스 커널로 분리 (?)
나는 둘 다 같은 문제를 보았다
- archlinux-2016.08.01-dual.iso
- 우분투 -gnome-16.04.1-desktop-amd64.iso
Arch의 경우-문제는 USB 스틱에서 부팅 할 때 간헐적으로 만 나타납니다. 드라이브의 100GB ext4 파티션에 Arch를 설치했습니다. 부팅하는 동안 해당 설치에 간헐적으로 동일한 시간이 발생합니다 (예 : 90 %). 부팅을 통과하면 처음 실행 한 두 개의 터미널 명령 후에 문제가 무작위로 표시되어 결국 완전한 교착 상태가 발생합니다.
우분투의 경우 USB 스틱이 부팅되지 않습니다. 나는 같은 오류로 즉시 멈추게됩니다. 이중 자물쇠...
너무 많은 오류 ...
이 일이 발생할 때마다 저널은 메모리 관련 오류로 채워져 있지만 내가보고있는 주요 오류는 다음과 같습니다.
General protection fault 0000[#1] PREEMPT SMPRIP kmem_cache_allocRIP kmem_cache_alloc_trace
이 오류에 대해 동일한 스택 추적을 여러 번 보았습니다.
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
리눅스는 또한 문제를 해결한다고 약속한다
재귀 오류를 해결하지만 재부팅이 필요합니다!
나는 원한다..
인텔 ucode
또한 intel-ucode아치 설치에 패키지를 설치하려고했습니다 . 나는에서 본 dmesg마이크로 코드가 업데이트 된 것을 로그,하지만 불행히도 내 문제가 해결되지 않았다.
무엇이 문제 일 수 있습니까? 어떻게 고칠 수 있습니까?
편집하다
추가 참고 사항.
일반적인 보호 오류 메시지와 "잠금 감지"유형 메시지는 일반적으로 CPU를 참조합니다. 나는 보았다 CPU0, CPU1, CPU2및 CPU3이러한 메시지입니다. 캐시 메모리 등을 지우려는 교착 상태에 처한 것처럼 CPU가 작동하지 않는 것처럼 보입니다.
편집 2
오류에서 언급 한 BIOS
일부 오류에서이 정보가 표시됩니다.
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
그것이 문제를 이해하는 데 도움이되는지 확실하지 않습니다 ...
편집 3
maxcpus = 1
나는에서 디버깅 옵션을 찾고 있었다 커널은 문서 PARAMS 발견을maxcpus
max cpu를 1로 설정하면 문제가 해결됩니다. 따라서 문제는 일종의 공유 캐시 메모리 위반 인 것 같습니다.
편집 3
maxcpus = 1 + 그놈 = 다시 깨진
maxcpus=11 CPU만으로 시스템을 작동시키는 것처럼 보이지만 그놈을 설치 한 다음 실행했습니다.systemctl enable gdm.service
이제 다시 부팅하면 모든 오류가 다시 발생하지만 이번에는 CPU0에서 모두 발생합니다.
따라서 1 CPU에서도 무언가가 여전히 메모리 위반을 일으키는 것으로 보입니다.
편집 4
놀라움
사용 nolapic하면 모든 것이 "작동" 하는 것처럼 보입니다.
그러나을 사용 nolapic하면 작동하는 1 CPU에서 다른 CPU 및 모든 멀티 스레딩을 효과적으로 비활성화합니다.
OpenMP에 이것을 사용하려고하는데 OpenMP로 부팅 한 후 nolapicLinux 커널은 1 개의 스레드, 1 개의 CPU 만 찾을 수 있습니다. 짜증나!
나는 또한 시도 intel_idle.max_cstate=0하고 1, 2등 그러나 이것은 부팅 문제가 해결되지 않습니다.
커널이 멀티 코어 머신을 활용하지 못하는 다른 요인은 무엇입니까?
nomodeset및 nouveau.mode=0- 그와 비슷하지 않도록 경우)
maxcpus-나는 그것을 1로 설정하고 문제가 사라졌습니다 ...하지만 이제 단 하나의 프로세서 만 사용할 수 있습니까? :(
nomodeset nouveau.modeset=0함께 사용해보십시오. 그래도 작동하지 않으면 다음을 시도하십시오.nomodeset i915.modeset=0 nouveau.modeset=0