วิธีตั้งค่า intel_idle.max_cstate = 1


12

ฉันจะตั้งค่า Intel idle max cstate เป็น 1 ได้อย่างไรและฉันจะตรวจสอบได้อย่างไรเมื่อมันจะเสร็จสิ้น ฉันมีปัญหาค้างเนื่องจากแกนกลางของเบย์

ฉันลองใช้เคอร์เนล 4.5 4.1.12 4.4 แต่ปัญหาค้างยังคงดำเนินต่อไป ในขณะนี้ 4.4 เป็นรุ่นเคอร์เนลของฉัน


ณ ตอนนี้ (8/2019) เธรดนี้ไม่ได้ระบุว่าการตั้งค่า intel_idle.max_cstate = 1 เป็นวิธีแก้ปัญหาอย่างเป็นทางการสำหรับข้อผิดพลาดที่เผยแพร่ในปี 2011 เนื่องจากในกรณีของฉันคือ (ต้องทำซ้ำ) ปัญหาเป็นระยะ ๆ ก่อนที่ฉันจะ เพิ่ม intel_idle.max_cstate = 1 ไปยัง GRUB ของฉันฉันต้องการรับเอกสารบางอย่างที่ระบุว่า Bugzilla doc ต้นฉบับไม่ชัดเจนต่อผลกระทบนั้น ผู้เข้าร่วมบางคนในฟอรัมนี้สามารถช่วยฉันตรวจสอบ“ แก้ไข” นี้อย่างเป็นทางการได้หรือไม่?
Jan Hus

คำตอบ:


21

หากใช้ 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อะไร? จะต้องทำอย่างไรถ้าหากลึกกว่านี้?
Stephane

1
@Stephane: โดย "deep" ฉันหมายถึง c state ที่สูงกว่า 1 ถ้าคุณตั้งค่าบรรทัดคำสั่ง grub อย่างเหมาะสมมันไม่ควรไปที่ cstate ที่ลึกกว่า (สูงกว่า) 1. คุณสามารถสังเกต CPU และ Package ได้ดีขึ้น มากกว่า 1 แสดงเวลา 0.00% ในสถานะเหล่านั้นในสายเอาต์พุตเทอร์โมสแตท
Doug Smythies

1
Thinkpad X201i ของฉันทำการรีสตาร์ทอย่างหนักทุกชั่วโมง ฉันเปิดใช้งานintel_idle.max_cstate=1ด้วงเช่นเดียวGRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"กับการอัพเดตด้วงsudo update-grubและรีสตาร์ทเครื่อง ไม่มีการรีสตาร์ทอย่างหนักอีกต่อไป ฉัน (ดีใจที่ฉันแก้ไขปัญหาของฉันฉันสงสัยว่าทรัพย์สินนี้บอก CPU อย่างไร
Stephane

FYI ฉันได้รับการต่อไปนี้รายงานข้อผิดพลาดนี้ประมาณปีและมันอาจจะสนใจคุณมากเกินไป: bugzilla.kernel.org/show_bug.cgi?id=109051 นอกจากนี้ที่นี่ในออสเตรเลีย: askubuntu.com/questions/803640/ …
WinEunuuchs2Unix

3

หลังจากมีปัญหาการแช่แข็งเดียวกันกับ 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

ข้อมูลเพิ่มเติม: แพตช์ / สคริปต์นี้จะได้รับโหมดประหยัดพลังงาน หัวข้อการแก้ปัญหาด้านบนจะลบโหมดนี้เลย


ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Elder Geek


0

ไม่จำเป็นต้องอัพเดตด้วงอีกต่อไปหากคุณเปลี่ยนเป็นเคอร์เนลล่าสุด

ตามความเห็น # 1013 ในรายงานข้อผิดพลาดตอนนี้ได้รับการแก้ไขแล้ว:

ฉันไม่ได้ตรวจสอบชุดข้อความนี้เป็นเวลานาน แต่ฉันคิดว่าฉันควรโพสต์สิ่งที่ฉันค้นพบในกรณีที่มีประโยชน์กับทุกคน

คอมพิวเตอร์ต่ำสุดที่ขับเคลื่อนด้วย Intel N2807 ซึ่งไม่เคยทำงานมากกว่า 30 ล้านโดยไม่หยุดทำงานเมื่อฉันไม่ได้ตั้งค่า ... max_cstates = 1 ตอนนี้ทำงานได้ดีกับหุ้นเคอร์เนล v. 5.3.1 หรือ 4.19.75 ฉันวิ่งไปสองสามวันกับแต่ละรุ่นโดยไม่มีปัญหาใด ๆ การใช้พลังงานเฉลี่ยก็ลดลงกว่า 10% เล็กน้อย

การแก้ไขข้อผิดพลาดนี้ใช้เวลาประมาณสี่ปีก่อนวันที่ 8 ธันวาคม 2558

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.