Patch yang terlupakan ditemukan di kernel Linux yang mempengaruhi kinerja CPU AMD

Kernel Linux 6.0, yang diharapkan akan dirilis Senin depan, mencakup perubahan yang mengatasi masalah kinerja pada sistem yang berjalan pada prosesor AMD Zen. Sumber penurunan kinerja ditemukan dari kode yang ditambahkan 20 tahun lalu untuk mengatasi masalah perangkat keras di beberapa chipset. Masalah perangkat keras telah lama diperbaiki dan tidak muncul di chipset saat ini, namun solusi lama untuk masalah tersebut telah dilupakan dan telah menjadi sumber penurunan kinerja pada sistem berbasis CPU AMD modern. Sistem baru pada CPU Intel tidak terpengaruh oleh solusi lama, karena sistem tersebut mengakses ACPI menggunakan driver intel_idle terpisah, dan bukan driver processor_idle umum.

Solusi telah ditambahkan ke kernel pada bulan Maret 2002 untuk memblokir munculnya bug di chipset yang terkait dengan tidak mengatur status idle dengan benar karena penundaan dalam pemrosesan sinyal STPCLK#. Untuk mengatasi masalah ini, implementasi ACPI menambahkan instruksi WAIT tambahan, yang memperlambat prosesor sehingga chipset memiliki waktu untuk memasuki keadaan idle. Saat membuat profil menggunakan instruksi IBS (Instruction-Based Sampling) pada prosesor AMD Zen3, ditemukan bahwa prosesor menghabiskan banyak waktu untuk mengeksekusi stub, yang menyebabkan interpretasi yang salah tentang status beban prosesor dan pengaturan mode tidur yang lebih dalam (C- Negara) oleh CPUidle prosesor.

Perilaku ini tercermin dalam penurunan kinerja pada beban kerja yang sering berganti-ganti antara kondisi menganggur dan sibuk. Misalnya, saat menggunakan patch yang menonaktifkan manuver bypass, rata-rata pengujian tbench meningkat dari 32191 MB/s menjadi 33805 MB/s.

Sumber: opennet.ru

Tambah komentar