Cara mengatur intel_idle.max_cstate = 1

12

Bagaimana saya bisa mengatur intel idle max cstate ke 1 dan bagaimana saya bisa mengecek kapan akan dilakukan. Saya punya masalah pembekuan karena core bay trail.

Saya mencoba kernel 4.5 4.1.12 4.4 tetapi masalah pembekuan masih berlanjut. saat ini 4.4 adalah versi kernel saya.

Ozan Temel
sumber
Sampai sekarang (8/2019) utas ini tidak benar-benar menyatakan bahwa pengaturan intel_idle.max_cstate = 1 adalah resolusi resmi untuk bug yang diterbitkan pada tahun 2011. Karena dalam kasus saya ini (harus menduplikasi) masalah intermiten, sebelum saya TAMBAH intel_idle.max_cstate = 1 ke GRUB saya, saya ingin mendapatkan dokumentasi yang menyatakannya. Doc Bugzilla asli tidak jelas untuk efek itu. Bisakah beberapa peserta di forum ini berbaik hati membantu saya memverifikasi “perbaikan” ini secara resmi?
Jan Hus

Jawaban:

21

Jika menggunakan GRUB:

Dengan sudo, edit /etc/default/grubdan edit GRUB_CMDLINE_LINUX_DEFAULTbaris yang ditambahkan intel_idle.max_cstate=1ke apa pun yang mungkin sudah ada di sana. Setelah menyimpan file berjalan sudo update-grub, lalu boot ulang. Sarankan agar Anda menyimpan salinan file grub asli Anda terlebih dahulu.

Untuk memeriksa apakah kondisi Anda tidak lebih dari 1 gunakan turbostat (paket: linux-tools-common).

Contoh (di mana sudah ada sesuatu pada GRUB_CMDLINE_LINUX_DEFAULT):

Sebelum (diedit):

$ 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

Lakukan perubahan (menggunakan metode saya untuk kontrol konfigurasi):

~/config/etc/default$ cp /etc/default/grub ./
~/config/etc/default$ cp grub grub.original
~/config/etc/default$ nano grub

Ubah ini:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

Untuk ini:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1"

Dan perbarui:

~/config/etc/default$ sudo cp grub /etc/default
~/config/etc/default$ sudo update-grub
~/config/etc/default$ sudo reboot -r now

Sekarang periksa (diedit):

$ 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

Anda juga harus melihat pesan-pesan ini di dmesgdan var/log/kern.log(diedit):

~$ 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
Doug Smythies
sumber
Saya bertanya-tanya apa nilai, dalam output dari turbostat, menunjukkan bahwa cstate tidak akan lebih dalam dari 1. Apa maksud Anda deeper? Apa yang harus dilakukan secara berbeda jika itu lebih dalam?
Stephane
1
@Stephane: Dengan "lebih dalam", yang saya maksudkan adalah status c yang lebih tinggi dari 1. jika Anda telah mengatur baris perintah grub dengan benar, seharusnya tidak masuk ke cstate lebih dalam (lebih tinggi dari) 1. Anda dapat mengamati CPU dan Paket, cstates lebih besar dari 1 menunjukkan waktu 0,00% di negara-negara tersebut pada jalur output turbostat.
Doug Smythies
1
Thinkpad X201i saya melakukan restart keras setiap jam. Saya mengaktifkan intel_idle.max_cstate=1di grub seperti GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"dengan pembaruan grub sudo update-grubdan me-restart mesin. Tidak ada restart keras terjadi lagi. Saya (saya senang saya memecahkan masalah saya. Saya bertanya-tanya apa sebenarnya properti ini memberitahu CPU.
Stephane
FYI Saya telah mengikuti laporan bug ini selama sekitar satu tahun dan mungkin Anda juga tertarik: bugzilla.kernel.org/show_bug.cgi?id=109051 . Juga di sini di AU: askubuntu.com/questions/803640/…
WinEunuuchs2Unix
3

Setelah mengalami masalah pembekuan yang sama dengan linux dan asrock Q2900 saya saya temukan di situs web IT Jerman solusi / solusi yang disediakan oleh Intel. ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html ) Ada masalah umum dengan Bay-Trail-SoCs dari Intel. Tautan ke tambalan: https://bugzilla.kernel.org/attachment.cgi?id=223851

Informasi lebih lanjut: Patch / skrip ini memang memperoleh mode hemat daya. Solusi topik di atas tidak menghilangkan mode ini sama sekali.

Helle
sumber
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Penatua Geek
1

Edit / etc / defaults / grub:

GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1"

Lari

update-grub
shutdown -r now
BSDguru
sumber
0

Tidak perlu memperbarui grub lagi jika Anda beralih ke kernel terbaru.

Menurut komentar # 1013 dalam laporan bug sekarang diperbaiki:

Saya belum memeriksa utas ini dalam waktu yang lama, tapi saya pikir saya harus memposting temuan saya kalau-kalau ada gunanya bagi siapa pun.

Komputer low-end yang ditenagai dengan Intel N2807 yang tidak pernah bekerja lebih dari 30 juta tanpa crash ketika saya tidak mengatur ... max_cstates = 1 sekarang bekerja dengan sangat baik dengan stock kernel v. 5.3.1 atau 4.19.75. Saya menjalankannya selama beberapa hari dengan setiap versi tanpa masalah. Konsumsi daya rata-rata juga turun sedikit di atas 10%.

Butuh waktu sekitar empat tahun untuk memperbaiki bug ini pertama kali dilaporkan 8 Desember 2015.

WinEunuuchs2Unix
sumber