Insinyur AMD K Prateek Nayak baru-baru ini menemukan bahwa solusi chipset berusia ~ 20 tahun di kernel Linux yang masih diterapkan pada sistem AMD modern bertanggung jawab dalam beberapa kasus untuk merusak kinerja pada perangkat keras Zen modern. Untungnya, perbaikan sedang dilakukan untuk membatasi solusi tersebut ke sistem lama dan pada gilirannya membantu kinerja untuk sistem modern.
Minggu lalu adalah patch yang diposting untuk kode idle prosesor ACPI untuk menghindari solusi chipset lama pada sistem AMD Zen modern. Sejak dukungan ACPI ditambahkan ke kernel Linux pada tahun 2002, telah ada "op menunggu palsu" untuk menangani beberapa chipset di mana STPCLK# tidak ditegaskan tepat waktu. Pembacaan I/O dummy menunda pemrosesan instruksi lebih lanjut sampai CPU benar-benar berhenti. Ini adalah masalah dengan setidaknya beberapa sistem era AMD Athlon dengan chipset VIA... Tapi tidak masalah dengan chipset yang lebih baru sekitar dua dekade terakhir.
Solusi kernel Linux selama dua dekade terakhir yang ditujukan untuk chipset kuno masih diterapkan secara tidak perlu pada sistem AMD modern, yang pada gilirannya dapat merusak kinerja dalam beban kerja tertentu.
Dengan solusi ini masih diterapkan bahkan pada sistem AMD modern, K Prateek Nayak telah menemukan:
Pengambilan sampel beban kerja tertentu dengan IBS pada sistem AMD Zen3 menunjukkan bahwa sejumlah besar waktu dihabiskan di dummy op, yang salah diperhitungkan sebagai residensi C-State. Nilai residensi C-State yang besar dapat membuat gubernur cpuidle untuk merekomendasikan C-State yang lebih dalam selama instans idle berikutnya, memulai lingkaran setan, yang menyebabkan penurunan kinerja pada beban kerja yang dengan cepat beralih antara fase sibuk dan idle.
Salah satu beban kerja tersebut adalah tbench di mana penurunan kinerja besar-besaran dapat diamati selama proses tertentu. Setidaknya untuk Tbench, solusi jangka panjang dan tanpa syarat di kernel Linux ini telah merusak kinerja AMD Ryzen / Threadripper / EPYC dalam beban kerja tertentu:
Solusi ini tidak mempengaruhi sistem Intel modern karena platform Intel yang lebih baru tersebut menggunakan jalur kode driver intel_idle berbasis MWAIT sebagai gantinya.
Patch AMD berevolusi menjadi patch ini oleh insinyur Intel Linux Dave Hansen. Tambalan untuk membatasi solusi "menunggu dummy" untuk sistem lama sudah diantrekan ke cabang x86/urgent TIP. Dengan mengikuti rute "x86/urgent" dan untuk memperbaiki solusi yang terlalu bersemangat yang tidak diperlukan pada perangkat keras modern, kemungkinan patch ini akan dikirimkan minggu ini masih untuk kernel Linux 6.0 daripada perlu menunggu sampai berikutnya (v6.1) menggabungkan jendela.
Itulah berita seputar Solusi Chipset Berusia 20 Tahun Telah Menyakiti Sistem AMD Linux Modern, semoga bermanfaat. Disadur dari Phoronix.com.