Sejak sistem file Bcachefs di-upstream di kernel Linux 6.7, sistem ini berjalan dengan baik. Namun hari ini pembaruan fitur Bcachefs dikirimkan untuk jendela penggabungan Linux 6.9 dan Linus Torvalds tidak senang dengan beberapa kode yang diusulkan.
Kode Bcachefs yang dikirimkan untuk Linux 6.9 mencakup beberapa pekerjaan persiapan menuju antarmuka ruang pengguna untuk menjalankan subvolume, perbaikan pada pemeriksaan struktur direktori, peningkatan pipeline jurnal untuk kinerja yang lebih baik, perbaikan jalur pembuangan yang lebih efisien, dan optimalisasi lainnya. Permintaan penarikan perubahan Bcachefs untuk Linux 6.9 diringkas oleh pengelola Kent Overstreet sebagai:
pembaruan bcachef untuk 6.9
– Subvolume anak btree; ini diperlukan untuk menyediakan antarmuka ruang pengguna untuk subvolume berjalan, yang akan dibahas nanti
– Banyak perbaikan pada pemeriksaan struktur direktori
– Peningkatan pipeline jurnal, yang secara signifikan meningkatkan kinerja pada beban kerja penulisan dengan kedalaman tinggi
– Perbaikan jalur buang: jalur buangan lebih efisien, dan tidak lagi membuang jurnal jika tidak perlu
– Jalur tulis buffer sekarang dapat menghindari pengambilan kunci inode
– Keluarkan berbagai kode perpustakaan untuk digunakan dalam XFS: statistik waktu, mean_and_variance, darray, eytzinger, thread_with_file
– pembantu mm baru: memalloc_flags_{save|restore}
– mempool sekarang melakukan kvmalloc mempoolsTetapi kode yang menggosok Linus Torvalds dengan cara yang salah adalah tambalan yang memindahkan beberapa elemen kode Bcachefs ke beberapa kode tipe perpustakaan sehingga dapat dengan mudah digunakan kembali oleh sistem file lain — XFS adalah menyatakan sistem file tertarik untuk menggunakan kembali beberapa fungsi Bcachefs.
Linus Torvalds menanggapi permintaan penarikan Bcachef dengan:
Hal-hal “jadikan kode bcachef acak menjadi fungsi perpustakaan” yang saya lihat, putuskan tidak masuk akal, dan akhirnya berarti bahwa saya tidak akan melakukan ini tanpa banyak penjelasan lebih lanjut (dan sejujurnya, menurut saya penjelasannya tidak akan masuk akal ).
Hal “stdio_redirect_printf()” dan darray_char itu hanyalah antarmuka yang menghebohkan tanpa penjelasan. Antarmukanya menjijikkan.
Simpan di kode Anda sendiri di tempatnya, jangan mencoba menjadikannya sebagai perpustakaan umum.
Dan jika Anda *melakukan* menjadikannya sebagai perpustakaan, itu perlu
(a) lebih banyak penjelasannya
(b) memiliki penamaan yang jauh lebih masuk akal, dan lebih sedikit antarmuka yang menjijikkan dan sepenuhnya tidak masuk akal (“DARRAY()”).
Dan tidak, menemukan sistem file lain untuk berbagi kode semacam ini tidaklah cukup untuk mencoba mengklaim bahwa itu adalah antarmuka yang waras dan penamaan yang waras.
Tapi pemecah masalah utama adalah matematika yang gila.
Dan sialnya, kita sudah lama membicarakan tentang sampah “mean and variance” yang konyol. Dulu itu salah, *masih* salah.
Anda tidak menjelaskan mengapa ia tidak bisa menggunakan MAD (deviasi absolut median) yang *lebih* lebih sederhana daripada menggunakan varians.
Keputusan buruk itu secara langsung mengakibatkan penggunaan matematika 128-bit yang terlalu rumit dan tidak ada gunanya.
Saya menyebutnya rekayasa berlebihan saat itu, dan sejauh yang saya tahu, *TIDAK ADA* yang benar-benar berubah kecuali sedikit detail nama tipe.
Selama Anda menjadikannya semacam bcachef saja, saya tidak keberatan.
Tapi sekarang Anda mencoba untuk menjadikan sampah ini sebagai semacam kode perpustakaan umum yang akan digunakan orang lain, dan itu berarti saya *memang* keberatan dengan antarmuka yang direkayasa secara berlebihan.
Hal-hal time_stats terlihat seperti antarmuka yang waras dengan nama dan kegunaannya, namun penggunaan infrastruktur yang mengerikan itu menggagalkannya. Setelah Overstreet memperdebatkan kasusnya, Torvalds menambahkan:
Kode untuk versi berbobot secara harfiah tidak berubah.
Nilai variansnya berbeda-beda, namun perbedaan antara MAD dan deviasi standar pada dasarnya hanyalah faktor konstan (yang akan berbeda untuk distribusi yang berbeda, tapi lalu kenapa? Setiap kasus _tertentu_ akan memiliki distribusi tertentu).
Jadi mengapa faktor konstan membuat perbedaan _apa pun_ untuk pembobotan eksponensial?
Bagaimanapun, jangan ragu untuk menyimpan kode Anda di bcachefs.
Dan mungkin xfs bahkan ingin menyalin kode itu. Saya tidak peduli, sepertinya bodoh, tapi itu adalah pilihan sistem file.
Namun jika kita menjadikannya perpustakaan kernel generik, itu harus masuk akal. Tidak membuat orang melakukan akar kuadrat 64-bit dan pembagian 128-bit hanya untuk elemen statistik acak. Jadi saat ini, Linus Torvalds tidak menerima permintaan penarikan Bcachefs untuk kernel Linux 6.9 karena kode perpustakaan generik yang diusulkan. Kami akan melihat apakah permintaan penarikan baru muncul dalam beberapa hari ke depan dengan patch tersebut dihapus atau dikerjakan ulang untuk memuaskan pembuat Linux.
Itulah berita seputar Linus Torvalds Tidak Senang Dengan Beberapa Kode Bcachefs Untuk Linux 6.9, semoga bermanfaat. Disadur dari Phoronix.com.