Linux kernel 6.0, dijangka dikeluarkan Isnin depan, termasuk perubahan yang menangani isu prestasi dengan pemproses AMD Zen. Sumber penurunan prestasi telah ditambah kod 20 tahun yang lalu untuk menyelesaikan isu perkakasan dalam beberapa set cip. Isu perkakasan telah lama dibetulkan dan tidak lagi muncul dalam set cip semasa, tetapi penyelesaian lama telah ditinggalkan dan telah menjadi punca kemerosotan prestasi pada sistem berdasarkan CPU AMD moden. Sistem yang lebih baharu dengan CPU Intel tidak terjejas oleh penyelesaian lama, kerana mereka mengakses ACPI menggunakan pemacu intel_idle yang berasingan, bukan pemacu processor_idle yang dikongsi.
Penyelesaian telah ditambahkan pada kernel pada Mac 2002 untuk mengelakkan pepijat dalam set cip yang berkaitan dengan kegagalan untuk menetapkan keadaan terbiar dengan betul akibat kelewatan dalam memproses isyarat STPCLK#. Untuk memintas isu ini, arahan WAIT tambahan telah ditambahkan pada pelaksanaan ACPI, memperlahankan pemproses supaya chipset boleh memasuki keadaan terbiar. Pemprofilan menggunakan arahan Persampelan Berasaskan Arahan (IBS) pada pemproses AMD Zen3 mendedahkan bahawa pemproses menghabiskan masa yang ketara untuk melaksanakan stub, yang membawa kepada tafsiran yang salah terhadap beban pemproses dan penetapan mod tidur yang lebih dalam (C-States) oleh pengendali cpuidle.
Tingkah laku ini dicerminkan dalam penurunan prestasi di bawah beban kerja yang kerap silih berganti antara keadaan terbiar dan sibuk. Contohnya, apabila menggunakan tampung yang melumpuhkan penyelesaian, purata hasil penanda aras tbench meningkat daripada 32191 MB/s kepada 33805 MB/s.
Sumber: opennet.ru
