ฉันจะตั้งค่า Intel idle max cstate เป็น 1 ได้อย่างไรและฉันจะตรวจสอบได้อย่างไรเมื่อมันจะเสร็จสิ้น ฉันมีปัญหาค้างเนื่องจากแกนกลางของเบย์
ฉันลองใช้เคอร์เนล 4.5 4.1.12 4.4 แต่ปัญหาค้างยังคงดำเนินต่อไป ในขณะนี้ 4.4 เป็นรุ่นเคอร์เนลของฉัน
ฉันจะตั้งค่า Intel idle max cstate เป็น 1 ได้อย่างไรและฉันจะตรวจสอบได้อย่างไรเมื่อมันจะเสร็จสิ้น ฉันมีปัญหาค้างเนื่องจากแกนกลางของเบย์
ฉันลองใช้เคอร์เนล 4.5 4.1.12 4.4 แต่ปัญหาค้างยังคงดำเนินต่อไป ในขณะนี้ 4.4 เป็นรุ่นเคอร์เนลของฉัน
คำตอบ:
หากใช้ GRUB:
ด้วยsudo
แก้ไข/etc/default/grub
และแก้ไขGRUB_CMDLINE_LINUX_DEFAULT
บรรทัดที่เพิ่มintel_idle.max_cstate=1
เข้าไปในสิ่งที่อาจมีอยู่แล้ว หลังจากบันทึกการเรียกใช้ไฟล์sudo update-grub
จากนั้นบูตอีกครั้ง แนะนำให้คุณบันทึกสำเนาของไฟล์ด้วงดั้งเดิมก่อน
เพื่อตรวจสอบว่า cstate ของคุณไม่ลึกเกินกว่า 1 ใช้ turbostat (แพ็คเกจ: linux-tools-common)
ตัวอย่าง (ซึ่งมีบางอย่างอยู่บนGRUB_CMDLINE_LINUX_DEFAULT
):
ก่อนหน้า (แก้ไข):
$ sudo turbostat -S --debug sleep 10
Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt
1 0.04 1654 3411 0 0.12 0.03 99.82 0.00 29 29 0.07 0.03 99.51 3.85 0.20 0.23
10.001629 sec
ทำการเปลี่ยนแปลง (โดยใช้วิธีการของฉันสำหรับการควบคุมการกำหนดค่า):
~/config/etc/default$ cp /etc/default/grub ./
~/config/etc/default$ cp grub grub.original
~/config/etc/default$ nano grub
เปลี่ยนสิ่งนี้:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
สำหรับสิ่งนี้:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1"
และอัปเดต:
~/config/etc/default$ sudo cp grub /etc/default
~/config/etc/default$ sudo update-grub
~/config/etc/default$ sudo reboot -r now
ตรวจสอบ (แก้ไข):
$ sudo turbostat -S --debug sleep 10
Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt
0 0.02 1920 3411 0 99.98 0.00 0.00 0.00 39 39 0.00 0.00 0.00 10.49 6.66 0.23
10.001079 sec
คุณควรเห็นข้อความเหล่านี้ในdmesg
และvar/log/kern.log
(แก้ไข):
~$ dmesg | grep intel_idle
[ 1.019709] intel_idle: max_cstate 1 reached
$ grep intel_idle /var/log/kern.log
Mar 23 08:10:32 s15 kernel: [ 1.019709] intel_idle: max_cstate 1 reached
turbostat
แสดงให้เห็นว่ารัฐจะไม่ลึกกว่า 1 คุณหมายถึงdeeper
อะไร? จะต้องทำอย่างไรถ้าหากลึกกว่านี้?
intel_idle.max_cstate=1
ด้วงเช่นเดียวGRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
กับการอัพเดตด้วงsudo update-grub
และรีสตาร์ทเครื่อง ไม่มีการรีสตาร์ทอย่างหนักอีกต่อไป ฉัน (ดีใจที่ฉันแก้ไขปัญหาของฉันฉันสงสัยว่าทรัพย์สินนี้บอก CPU อย่างไร
หลังจากมีปัญหาการแช่แข็งเดียวกันกับ linux และ asrock Q2900 ของฉันฉันพบในเว็บไซต์ IT ของเยอรมันแล้ววิธีการแก้ไข / การแก้ปัญหาที่จัดทำโดย Intel ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html ) มีปัญหาทั่วไปกับ Bay-Trail-SoCs จาก Intel ลิงก์ไปยังแพทช์: https://bugzilla.kernel.org/attachment.cgi?id=223851
ข้อมูลเพิ่มเติม: แพตช์ / สคริปต์นี้จะได้รับโหมดประหยัดพลังงาน หัวข้อการแก้ปัญหาด้านบนจะลบโหมดนี้เลย
แก้ไข / etc / defaults / grub:
GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1"
วิ่ง
update-grub
shutdown -r now
ไม่จำเป็นต้องอัพเดตด้วงอีกต่อไปหากคุณเปลี่ยนเป็นเคอร์เนลล่าสุด
ตามความเห็น # 1013 ในรายงานข้อผิดพลาดตอนนี้ได้รับการแก้ไขแล้ว:
ฉันไม่ได้ตรวจสอบชุดข้อความนี้เป็นเวลานาน แต่ฉันคิดว่าฉันควรโพสต์สิ่งที่ฉันค้นพบในกรณีที่มีประโยชน์กับทุกคน
คอมพิวเตอร์ต่ำสุดที่ขับเคลื่อนด้วย Intel N2807 ซึ่งไม่เคยทำงานมากกว่า 30 ล้านโดยไม่หยุดทำงานเมื่อฉันไม่ได้ตั้งค่า ... max_cstates = 1 ตอนนี้ทำงานได้ดีกับหุ้นเคอร์เนล v. 5.3.1 หรือ 4.19.75 ฉันวิ่งไปสองสามวันกับแต่ละรุ่นโดยไม่มีปัญหาใด ๆ การใช้พลังงานเฉลี่ยก็ลดลงกว่า 10% เล็กน้อย
การแก้ไขข้อผิดพลาดนี้ใช้เวลาประมาณสี่ปีก่อนวันที่ 8 ธันวาคม 2558