Sebelum Linus Torvalds kehilangan internet dan listriknya karena badai salju yang berdampak pada jendela integrasi Linux 6.8, akhir pekannya berada dalam kondisi yang sulit karena menghadapi penurunan kinerja dengan kode Linux 6.8 baru yang menyebabkan kernel Linux-nya dibuat. Ini dua kali lipat dibandingkan dengan core sebelumnya. Seorang insinyur AMD Linux mampu mereproduksi regresi dan dengan pengembang utama, kini ada solusi yang dikonfirmasi untuk masalah ini dalam kode penjadwalan terbaru.
Dalam diskusi tentang regresi kinerja signifikan yang dilaporkan oleh Linus Torvalds yang muncul dari perubahan penjadwal di Linux 6.8, untuk split commit, tidak segera jelas bagi pengembang yang terlibat apa yang menyebabkan regresi tersebut. Dalam diskusi berikutnya, Wise Carney dari AMD angkat bicara tersebut Itu juga dapat mereproduksi regresi. Alih-alih menggunakan AMD Ryzen Threadripper kelas atas seperti yang digunakan Torvalds, Wyes menggunakan desktop AMD Ryzen 5600G yang sederhana. Satu catatan penting yang ia kemukakan adalah bahwa ini hanya direproduksi jika Anda menonaktifkan ACPI CPPC dari BIOS dan menggunakan ACPI CPUFreq dengan gubernur Schedutil.
Sebagian besar sistem AMD Zen 2 dan yang lebih baru mendukung ACPI CPPC, jadi dengan core modern di sisi Ryzen, mereka biasanya menggunakan driver AMD P-State yang baru. Namun untuk Zen 2 / Zen 3 dan sistem sebelumnya (atau sistem yang menonaktifkan CPPC dari BIOS), driver CPUFreq masih digunakan dan pengatur frekuensi CPU default biasanya “Schedutil” untuk memanfaatkan data penggunaan penjadwal.
Melalui thread di milis ini, koreksi disarankan dan masalah spesifik terkait regresi ini dibahas. Akhirnya, Vincent Guiteau yakin dia memiliki solusi untuk regresi tersebut dan Wise berhasil menguji patch tersebut.
Guittot kini telah dikirim Terjadwal/Adil: Memperbaiki pemilihan frekuensi untuk kasus yang tidak stabil Sebagai tambalan untuk memperbaiki regresi buruk ini pada kode Linux 6.8 baru saat menggunakan ACPI CPUFreq + Schedutil. Menjelaskan dengan koreksi:
“Ketika persistensi frekuensi tidak diaktifkan, get_capacity_ref_freq(policy) mengembalikan frekuensi saat ini dan margin kinerja yang diterapkan oleh map_util_perf(), memungkinkan penggunaan melebihi kapasitas komputasi maksimum dan memilih frekuensi yang lebih tinggi dari frekuensi saat ini.
Margin kinerja kini diterapkan di awal proses untuk memperhitungkan beberapa kendala penggunaan dan kami tidak dapat memperoleh penggunaan di atas kapasitas komputasi maksimum.
Kita harus menggunakan frekuensi yang lebih tinggi dari frekuensi saat ini agar memiliki peluang untuk menyetel OPP yang lebih tinggi ketika frekuensi saat ini digunakan sepenuhnya. Terapkan margin yang sama dan kembalikan frekuensi 25% lebih tinggi dari frekuensi saat ini untuk beralih ke OPP berikutnya sebelum kita menggunakan seluruh CPU di prosesor saat ini.”
Pada akhirnya, perbaikan kode satu baris untuk mengatasi penurunan kinerja inilah yang menyebabkan build kernel kosong Linus Torvalds meningkat dari 22 detik menjadi 44 detik.
Dengan asumsi semuanya terus teruji dengan baik dengan patch baru, perbaikan akan diterapkan pada kode Linux 6.8 Git setelah internet dan listrik Linus Torvalds pulih.
“Penjelajah ramah hipster. Penggemar kopi pemenang penghargaan. Analis. Pemecah masalah. Pembuat masalah.”
More Stories
Microsoft mengatakan Call of Duty: Black Ops 6 mencetak rekor untuk jumlah “penambahan pelanggan Game Pass pada hari peluncuran.”
Unduhan Call of Duty: Black Ops 6 memaksimalkan penggunaan internet Anda
Apple diperkirakan akan meluncurkan MacBook Pro baru hari ini dengan fitur-fitur ini