Thật khó để cô lập CPU, tôi biết, nhưng những lỗi tôi thấy cho thấy đó là vấn đề.
Đây chắc chắn không phải là một vấn đề phần cứng bị hỏng / hỏng . Tôi đã chạy Windows 10 cả ngày trong nhiều ngày qua và điều này rất nhanh! Không bị rơi. Quan trọng hơn, tôi đã chạy bộ kiểm tra bộ nhớ Windows. Trí nhớ là tất cả tốt.
thông số kỹ thuật máy
Máy là một chiếc Lenovo Yoga 710 15 "hoàn toàn mới
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
cô lập với kernel linux (?)
Tôi đã thấy những vấn đề tương tự trên cả hai
- archlinux-2016.08.01-dual.iso
- ubfox-gnome-16.04.1-desktop-amd64.iso
Đối với Arch - vấn đề chỉ xuất hiện không liên tục khi khởi động từ thanh USB. Tôi đã quản lý để cài đặt Arch trên phân vùng ext4 100GB trên ổ đĩa. Quá trình cài đặt đó có cùng một vấn đề không liên tục (như 90% thời gian) trong khi khởi động. Nếu tôi được thông qua khởi động, thì vấn đề sẽ xuất hiện ngẫu nhiên sau vài lệnh đầu cuối đầu tiên tôi thực thi, cuối cùng gây ra bế tắc hoàn toàn.
Đối với Ubuntu - thanh USB thậm chí không khởi động. Tôi bị chặn bởi những lỗi tương tự ngay lập tức. Bế tắc ...
Quá nhiều lỗi ...
Tạp chí được nhồi nhét các lỗi liên quan đến bộ nhớ mỗi khi điều này xảy ra, nhưng các lỗi chính tôi gặp là:
General protection fault 0000[#1] PREEMPT SMP
RIP kmem_cache_alloc
RIP kmem_cache_alloc_trace
Tôi đã thấy một số dấu vết ngăn xếp tương tự nhiều lần cho các lỗi này:
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 cũng hứa rằng nó sẽ khắc phục vấn đề
Sửa lỗi đệ quy nhưng cần khởi động lại!
Tôi ước..
ucode intel
Tôi cũng đã thử cài đặt intel-ucode
gói trong cài đặt Arch của tôi. Tôi đã thấy trong dmesg
nhật ký rằng các vi mã đã được cập nhật, nhưng điều đó không may không giải quyết được vấn đề của tôi.
Điều gì có thể là vấn đề? Làm thế nào có thể sửa chữa nó?
BIÊN TẬP
Ghi chú bổ sung.
Các thông báo lỗi bảo vệ chung và thông báo "khóa được phát hiện" thường tham chiếu CPU. Tôi đã nhìn thấy CPU0
, CPU1
, CPU2
và CPU3
trong các thư này. Có vẻ như một cái gì đó đang khiến CPU không thể hòa hợp, giống như tất cả chúng đang rơi vào bế tắc khi cố gắng xóa bộ nhớ cache hoặc một cái gì đó.
EDIT2
BIOS đề cập đến lỗi
Tôi thấy một chút thông tin trong một số lỗi:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
Không chắc chắn nếu điều đó hữu ích cho một chuyên gia trong việc tìm hiểu vấn đề ...
EDIT3
maxcpus = 1
Tôi đã tìm kiếm các tùy chọn gỡ lỗi trong tài liệu params kernel và tìm thấymaxcpus
Nếu tôi đặt max cpu thành 1, thì vấn đề sẽ biến mất. Vì vậy, có vẻ như vấn đề là một số loại vi phạm bộ nhớ cache được chia sẻ.
EDIT3
maxcpus = 1 + Gnome = lại bị hỏng
Mặc dù maxcpus=1
dường như làm cho hệ thống hoạt động chỉ với 1 CPU, tôi đã cài đặt gnome và sau đó chạysystemctl enable gdm.service
Bây giờ, khi tôi khởi động lại, tôi lại nhận được tất cả các lỗi của mình, nhưng lần này tất cả đều xảy ra trên CPU0
Vì vậy, có vẻ như một cái gì đó vẫn gây ra vi phạm bộ nhớ ngay cả với CPU 1.
EDIT4
nolapic
Vì vậy, sử dụng nolapic
dường như để có được mọi thứ "làm việc"
NHƯNG bằng cách sử dụng nolapic
, tôi vô hiệu hóa hiệu quả CPU khác của tôi và tất cả đa luồng trong 1 CPU hoạt động.
Tôi đang cố gắng sử dụng cái này cho OpenMP và sau khi khởi động bằng nolapic
, OpenMP và kernel linux chỉ có thể tìm thấy 1 luồng, 1 CPU. Thật tệ!
Tôi cũng đã thử intel_idle.max_cstate=0
và 1
, 2
v.v. Nhưng điều này không khắc phục được vấn đề khởi động.
Điều gì khác có thể khiến kernel không sử dụng máy đa lõi của tôi?
nomodeset
và nouveau.mode=0
- không chắc điều đó có tương tự không)
maxcpus
- Tôi đặt nó thành 1 và vấn đề sẽ biến mất ... Nhưng bây giờ tôi chỉ có thể sử dụng một procesor? :(
nomodeset nouveau.modeset=0
cùng nhau và nếu điều đó không hiệu quả, hãy thửnomodeset i915.modeset=0 nouveau.modeset=0