Selain perbaikan lanjutan FUTEX2 yang hadir di Linux 6.7, permintaan penarikan lainnya yang digabungkan minggu lalu untuk kernel baru membawa dukungan FUTEX ke IO_uring.
Kode baru ini memungkinkan penggunaan futex melalui IO_uring — termasuk menunggu vektor FUTEX. Dukungan FUTEX IO_uring ini dapat menghasilkan beberapa keunggulan kinerja/efisiensi. Jens Axboe menjelaskan dalam permintaan tarik:
Sejauh yang saya ingat, permintaan pertama untuk dukungan futex dengan io_uring datang dari Andres Freund, yang mengerjakan postgres. Pengerjaan ulang aio postgresnya adalah salah satu pengguna awal io_uring, dan dukungan futex adalah perpanjangan alami untuk itu. Hal ini relevan baik dari sudut pandang kegunaan, serta efisiensi dan kinerja. Dalam kata-kata Andres, untuk yang pertama:
“Dukungan menunggu Futex di io_uring membuatnya lebih mudah untuk menghindari kebuntuan dalam program bersamaan yang memiliki kumpulan buffernya sendiri: Jelas halaman dalam kumpulan buffer aplikasi harus dikunci selama IO. Jika inisiator IO A perlu menunggu untuk ditahan kunci B, pemegang kunci B mungkin menunggu hingga IO A selesai. Kemampuan untuk menunggu kunci dan penyelesaian IO pada saat yang sama memberikan cara yang efisien untuk menghindari kebuntuan tersebut.”
dan dalam hal efisiensi, meski belum mengeluarkan potensi penuhnya, Andres mengatakan:
“Dukungan bangun Futex di io_uring berguna karena memungkinkan bangun terarah yang lebih efisien. Untuk beberapa “kunci” postgres memiliki antrian yang diimplementasikan di ruang pengguna, dengan logika bangun yang tidak dapat dengan mudah diimplementasikan dengan FUTEX_WAKE_BITSET pada satu “kata futex” (bayangkan menunggu jurnal memerah untuk menyelesaikan hingga titik tertentu). Jadi “pelepasan kunci” terkadang perlu membangunkan banyak proses berturut-turut. Konversi cepat dan kotor untuk melakukan bangun ini melalui io_uring menghasilkan peningkatan throughput sebesar 3%, dengan 12% lebih sedikit pengalih konteks, meskipun dalam beban kerja yang cukup ekstrem.” Peningkatan throughput sebesar 3% dan pengurangan pengalih konteks sebesar 12% merupakan peningkatan kecil yang bagus untuk kernel. Detail lebih lanjut dan kode melalui tarikan ini yang ada di pohon jalur utama beberapa hari terakhir.
Itulah berita seputar IO_uring Dukungan FUTEX Di Linux 6.7 Untuk Peningkatan Kinerja/Efisiensi yang Bagus, semoga bermanfaat. Disadur dari Phoronix.com.