มันยากที่จะแยก CPU ฉันรู้ แต่ข้อผิดพลาดที่ฉันเห็นแนะนำว่าเป็นปัญหา
นี้แน่นอนไม่ได้เป็นปัญหาฮาร์ดแวร์ชำรุด / เสีย ฉันใช้ Windows 10 มาตลอดทั้งวันในช่วงหลายวันที่ผ่านมาและสิ่งนี้เร็วมาก ๆ ! ไม่มีการกระแทก ที่สำคัญกว่านั้นฉันรันตัวตรวจสอบหน่วยความจำ Windows หน่วยความจำดีทั้งหมด
รายละเอียดเครื่อง
เครื่องเป็นแบรนด์ใหม่ของเลอโนโวโยคะ 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
แยกเป็นเคอร์เนล linux (?)
ฉันเห็นปัญหาแบบเดียวกันทั้งสองอย่าง
- ArchLinux-2016/08/01-dual.iso
- อูบุนตู-gnome-16.04.1-สก์ท็อป amd64.iso
สำหรับ Arch - ปัญหาปรากฏขึ้นเป็นระยะ ๆ เมื่อบู๊ตจากอุปกรณ์ USB ฉันจัดการเพื่อติดตั้ง Arch บนพาร์ติชั่น ext4 100GB บนไดรฟ์ การติดตั้งนั้นมีปัญหาเดียวกันเป็นระยะ ๆ (เช่น 90% ของเวลา) ระหว่างการบู๊ต หากฉันผ่านการบู๊ตแล้วปัญหาจะปรากฏขึ้นแบบสุ่มหลังจากคู่แรกของคำสั่งเทอร์มินัลที่ฉันดำเนินการจนทำให้เกิดการหยุดชะงักโดยสมบูรณ์
สำหรับ Ubuntu - USB stick ไม่สามารถบู๊ตได้ ฉันหยุดโดยข้อผิดพลาดเดียวกันเหล่านี้ทันที หยุดชะงัก ...
ข้อผิดพลาดมากมาย ...
สมุดรายวันถูกอัดแน่นไปด้วยข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำทุกครั้งที่เกิดเหตุการณ์นี้ แต่ข้อผิดพลาดที่สำคัญที่ฉันเห็นคือ
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
ลินุกซ์ยังคงสัญญาว่าจะแก้ไขปัญหา
แก้ไขข้อผิดพลาดแบบเรียกซ้ำ แต่จำเป็นต้องรีบูต!
ฉันหวังว่า..
intel ucode
ฉันยังลองติดตั้งintel-ucode
แพ็คเกจในการติดตั้ง Arch ของฉันด้วย ฉันเห็นในdmesg
บันทึกว่ามีการอัปเดตไมโครโค้ด แต่น่าเสียดายที่ไม่ได้แก้ปัญหาของฉัน
มีปัญหาอะไรบ้าง? จะแก้ไขได้อย่างไร?
แก้ไข
หมายเหตุเพิ่มเติม
ข้อความความผิดพลาดในการป้องกันทั่วไปและข้อความ "ล็อกอัพที่ตรวจพบ" โดยทั่วไปแล้วจะอ้างอิง CPU ผมเคยเห็นCPU0
, CPU1
, CPU2
และCPU3
ในข้อความเหล่านี้ ดูเหมือนว่ามีอะไรบางอย่างที่ทำให้ซีพียูไม่สามารถเข้ากันได้เหมือนกับว่าทุกคนอยู่ในการหยุดชะงักเพื่อพยายามล้างหน่วยความจำแคชหรือบางอย่าง
EDIT2
BIOS ที่กล่าวถึงในข้อผิดพลาด
ฉันเห็นข้อมูลนี้ในข้อผิดพลาด:
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
ไม่แน่ใจว่าเป็นประโยชน์หรือไม่สำหรับมืออาชีพในการทำความเข้าใจปัญหา ...
edit3
maxcpus = 1
ฉันกำลังมองหาตัวเลือกการแก้ไขข้อบกพร่องในเอกสารประกอบเคอร์เนลและพบว่าmaxcpus
ถ้าฉันตั้งค่า cpu สูงสุดเป็น 1 ดังนั้นปัญหาจะหายไป ดังนั้นดูเหมือนว่าปัญหาคือการละเมิดหน่วยความจำแคชที่ใช้ร่วมกันบางประเภท
edit3
maxcpus = 1 + Gnome = แตกอีกครั้ง
แม้ว่าmaxcpus=1
ดูเหมือนว่าจะทำให้ระบบใช้งานได้กับ CPU เพียง 1 ตัว แต่ฉันติดตั้ง gnome แล้ววิ่งsystemctl enable gdm.service
ตอนนี้เมื่อฉันรีบูตฉันได้รับข้อผิดพลาดทั้งหมดกลับมาอีกครั้ง แต่คราวนี้พวกเขาทั้งหมดเกิดขึ้นใน CPU0
ดังนั้นดูเหมือนว่าบางสิ่งยังคงก่อให้เกิดการละเมิดหน่วยความจำแม้กระทั่งกับ 1 CPU
EDIT4
nolapic
ดังนั้นการใช้nolapic
ดูเหมือนจะทำให้ทุกอย่าง "ทำงาน"
แต่โดยใช้nolapic
ฉันปิดการใช้งาน CPU อื่นของฉันและมัลติเธรดทั้งหมดในซีพียูทำงาน 1 ตัว
ฉันพยายามใช้สิ่งนี้กับ OpenMP และหลังจากบูทด้วยnolapic
OpenMP และเคอร์เนล linux จะสามารถค้นหาได้เพียง 1 เธรดและ 1 CPU นั่นห่วย!
ฉันยังพยายามintel_idle.max_cstate=0
และ1
, 2
ฯลฯ แต่นี้ไม่สามารถแก้ไขปัญหาการบูต
มีอะไรอีกที่ทำให้เคอร์เนลไม่สามารถใช้เครื่องมัลติคอร์ของฉันได้?
nomodeset
แล้วnouveau.mode=0
- ไม่แน่ใจว่ามันคล้ายกัน)
maxcpus
- ฉันตั้งค่าเป็น 1 และปัญหาหายไป ... แต่ตอนนี้ฉันสามารถใช้ procesor เดียวได้หรือไม่ :(
nomodeset nouveau.modeset=0
ร่วมกันและหากวิธีนี้ใช้ไม่ได้ให้ลองnomodeset i915.modeset=0 nouveau.modeset=0