Membandingkan Kernel Linux Dengan Build yang Dioptimalkan “-O3”

  • Post author:
  • Post category:Linux

Berasal dari patch kernel Linux minggu lalu yang menyarankan opsi eksperimental -O3 untuk semua arsitektur CPU dan Linus Torvalds dengan cepat menurunkannya, berikut adalah beberapa tolok ukur baru yang melihat kinerja kernel Linux ketika image kernel dibangun kembali dengan tingkat optimasi -O3. daripada -O2.

As selama upaya sebelumnya ketika -O3 mengoptimalkan kernel Linux telah diajukan, Linus Torvalds telah menyatakan keprihatinannya karena kompiler GCC setidaknya secara historis menghasilkan kode yang lebih buruk daripada -O2 dan kadang-kadang bahkan menghasilkan kode yang salah / salah terutama ketika berurusan dengan perilaku kernel tingkat rendah. Khususnya dengan binatang besar yaitu kernel Linux, mungkin sulit untuk men-debug kernel ketika diinduksi oleh kompiler yang menghasilkan kode yang agak buruk dan mungkin tidak segera terlihat oleh dokumentasi pengguna/developer.

GCC pada tingkat optimasi -O3.

Atas nama keamanan dan kenang-kenangan dari saat-saat ketika kompiler GCC tidak selalu dapat diandalkan dengan optimasinya, Linus Torvalds jelas masih berhati-hati di sekitar optimasi kompiler agresif untuk kernel Linux. Selain itu, tambalan minggu lalu tidak memberikan alasan kuantitatif apa pun untuk “CC_OPTIMIZE_FOR_PERFORMANCE_O3” eksperimental yang diusulkan dalam memperluas bahwa di luar arsitektur ARC yang ada tunable.

Tingkat pengoptimalan -O3 dapat dengan mudah diatur juga melalui variabel lingkungan “KCFLAGS” untuk mengatur CFLAGS kernel. Dengan itu dan karena saya belum mencoba-coba perbandingan tingkat pengoptimalan kompiler untuk kernel Linux yang dibangun sendiri selama bertahun-tahun, saya menjalankan beberapa tolok ukur baru dari kernel build.

-O3`ed Untuk artikel ini saya menjalankan tolok ukur dari keadaan Linux 5.19 Git yang sama ketika membangun kernel dengan set KCFLAGS=-O2 (default) dan kemudian membangun kembali status kernel yang sama dan Kconfig yang sama dengan set KCFLAGS=-O3 untuk tingkat pengoptimalan kompiler yang lebih agresif. CFLAGS/CXXFLAGS tidak diubah untuk benchmark open-source yang digunakan — binari user-space adalah 1:1 sama dengan hanya kernel Linux yang diubah selama proses benchmarking.

Semua pengujian ini dilakukan pada sistem desktop Intel Core i5 12600K “Alder Lake” kelas menengah. Berbagai benchmark sintetis dan dunia nyata dilakukan untuk melihat dampak dari kernel -O3 yang dibangun di atas -O2. Jadi mari kita lihat apa arti kernel -O3 pada tahun 2022 saat menggunakan Ubuntu 22.04 LTS dengan versi kompiler GCC 11 modern (tetapi bukan yang terbaru).

Itulah berita seputar Membandingkan Kernel Linux Dengan Build yang Dioptimalkan “-O3”, semoga bermanfaat. Disadur dari Phoronix.com.