Setelah folio memori gagal membuatnya ke Linux 5.15, perubahan tingkat rendah pada kode manajemen memori kernel yang memiliki implikasi kinerja mungkin mencari untuk mendarat untuk Linux 5.16.
Menjelang jendela penggabungan Linux 5.16 yang mungkin terbuka besok, Matthew Wilcox mengirimkan pull request untuk memperkenalkan folio ke kernel. Berikut adalah kutipan utama dari permintaan tarik bagi mereka yang tidak terbiasa dengan folio atau telah lupa detail selama berbulan-bulan bahwa fitur ini telah bekerja:
Inti dari semua churn ini adalah untuk izinkan sistem file dan cache halaman untuk mengelola memori dalam potongan yang lebih besar dari PAGE_SIZE. Rencana awalnya adalah menggunakan halaman majemuk seperti yang dilakukan THP, tetapi saya mengalami masalah dengan beberapa fungsi yang hanya mengharapkan halaman utama sementara yang lain mengharapkan halaman yang tepat berisi byte tertentu. Jenis folio memungkinkan fungsi untuk menyatakan bahwa itu hanya mengharapkan halaman kepala. Hampir secara kebetulan, ini memungkinkan kita untuk menghapus berbagai panggilan ke VM_BUG_ON(PageTail(page)) dan compound_head().
Permintaan tarik ini hanya mengonversi sebagian MM inti dan cache halaman. Untuk 5.17, kami bermaksud mengonversi berbagai sistem file (XFS dan AFS sudah siap; sistem file lain mungkin membuatnya) dan juga mengonversi lebih banyak MM dan cache halaman ke folio. Untuk 5.18, folio multi-halaman harus sudah siap.
Folio multi-halaman menawarkan beberapa peningkatan pada beberapa beban kerja. Kemenangan 80% itu nyata, tetapi tampaknya menjadi tolok ukur buatan (startup postgres, yang bukan merupakan beban kerja yang serius). Beban kerja nyata (misalnya membangun kernel, menjalankan postgres dalam keadaan stabil, dll) tampaknya menguntungkan antara 0-10%. Saya belum pernah mendengar adanya penurunan kinerja sebagai akibat dari seri ini. Tidak ada yang melakukan penyetelan kinerja yang serius; Saya membayangkan bahwa mengutak-atik algoritma readahead dapat memberikan beberapa kemenangan yang lebih menarik. Ada juga tempat lain di mana kita dapat memilih untuk membuat folio besar dan saat ini tidak, seperti penulisan yang lebih besar dari PAGE_SIZE.
Untuk pengguna akhir, ini berarti kemungkinan manfaat kinerja dan lebih kernel yang berhasil merilis fungsionalitas di sekitar folio memori akan dibangun.
Lihat permintaan tarik untuk detail selengkapnya. Sekarang untuk melihat apakah Linus Torvalds memutuskan untuk menarik ~2k+ baris perubahan ini atau jika ada keberatan baru/perbarui lainnya yang diajukan atas penambahan tersebut.