Ini seharusnya tidak terlalu mengejutkan mengingat beberapa komentar masa lalu Linus Torvalds tentang pengoptimalan kompiler dan pengalaman buruk sejak lama dengan GCC, tetapi Linus Torvalds tidak tertarik melihat opsi Kconfig yang dapat disetel untuk menggunakan tingkat pengoptimalan kompiler -O3 untuk membangun kernel Linux tanpa pembenaran yang substansial.
Seperti yang saya tulis di awal minggu ini, ada tambalan yang diusulkan untuk memungkinkan opsi Kconfig untuk menggunakan tingkat pengoptimalan -O3 kompiler daripada -O2 saat mengkompilasi kernel Linux. Opsi seperti itu sebenarnya sudah ada di kernel tetapi baru saja diekspos untuk port CPU ARC. Tambalan yang diusulkan adalah untuk membuat opsi “CC_OPTIMIZE_FOR_PERFORMANCE_O3” ini tersedia untuk semua arsitektur meskipun dengan tanda “eksperimental” yang ditandai dengan jelas. Ada minat di antara beberapa kernel -O3 yang dibangun untuk kinerja yang lebih baik dan/atau untuk dengan mudah melacak kode kernel Linux atau masalah kompiler ketika beralih ke tingkat pengoptimalan yang lebih agresif.
Tidak semua pengembang upstream setuju dengan ide ini karena tingkat pengoptimalan -O3 sudah dapat disetel menggunakan variabel lingkungan KCFLAGS dan ada kemungkinan pengoptimalan kompilator menimbulkan masalah — khususnya perbedaan halus dengan pengoptimalan kompiler agresif yang terkadang dapat sulit untuk sebaliknya melacak.
Linus Torvalds sore ini berkomentar bahwa dia secara efektif menentang memiliki opsi Kconfig seperti itu. Dia harus benar-benar diyakinkan oleh beberapa data dunia nyata yang keras untuk menunjukkan manfaatnya, tetapi bahkan seperti yang telah dia kutip di masa lalu, ada masalah kompiler yang diketahui secara historis dengan beberapa pengoptimalan. Mereka yang tertarik selalu dapat menggunakan “KCFLAGS=-O3” untuk mencapai perilaku yang sama tetapi ia kembali mengutip riwayat masalah pengoptimalan kompiler GCC.
Sejujurnya, mari kita hapus -O3 seluruhnya.
Mengaktifkannya, dan bahkan tidak menguji hasilnya, hanyalah tentang kemungkinan *terburuk*. Itu mengerikan.
Argumen bahwa “tetapi ARC menggunakannya” bukanlah argumen. Itu selalu merupakan argumen yang buruk, dan ARC hanya perlu memperbaiki apa pun yang membuatnya menjadi masalah (kemungkinan sudah diperbaiki dengan peningkatan kompiler).
Dan tidak mungkin saya akan menerima ini sebagai “biarkan orang mencobanya” ketika
– seperti yang disebutkan, cukup gunakan KCFLAGS=-O3 jika Anda mau
– -O3 memiliki *panjang* sejarah menghasilkan kode yang lebih buruk daripada -O2
jadi saya *tidak* akan menggunakan tambalan semacam ini tanpa penjelasan yang sangat serius mengapa -O3 tiba-tiba menjadi dapat diterima kembali.
Penjelasan-penjelasan itu sebaiknya lebih dari sekadar “biarkan orang mencoba”. Mereka harus memiliki angka kinerja aktual yang mendalam untuk beban nyata, bukan logika “lebih besar lebih baik” yang dibuat-buat.
Linus
Itulah berita seputar Komentar Terbaru Linus Torvalds Terhadap -O3ing Kernel Linux, semoga bermanfaat. Disadur dari Phoronix.com.