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 SMP
RIP kmem_cache_alloc
RIP 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=1
1 CPU만으로 시스템을 작동시키는 것처럼 보이지만 그놈을 설치 한 다음 실행했습니다.systemctl enable gdm.service
이제 다시 부팅하면 모든 오류가 다시 발생하지만 이번에는 CPU0에서 모두 발생합니다.
따라서 1 CPU에서도 무언가가 여전히 메모리 위반을 일으키는 것으로 보입니다.
편집 4
놀라움
사용 nolapic
하면 모든 것이 "작동" 하는 것처럼 보입니다.
그러나을 사용 nolapic
하면 작동하는 1 CPU에서 다른 CPU 및 모든 멀티 스레딩을 효과적으로 비활성화합니다.
OpenMP에 이것을 사용하려고하는데 OpenMP로 부팅 한 후 nolapic
Linux 커널은 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