Después de que los folios de memoria no lo lograron en Linux 5.15, este cambio de bajo nivel en el código de administración de memoria del kernel que tiene posibles implicaciones de rendimiento está buscando aterrizar en Linux 5.16.
Antes de la ventana de fusión de Linux 5.16 que puede abrirse tan pronto como mañana, Matthew Wilcox envió su solicitud de extracción para introducir folios al kernel. Aquí está el extracto principal de la solicitud de extracción para aquellos que no están familiarizados con las publicaciones o que han olvidado los detalles durante los meses en los que esta función ha estado en proceso:
El objetivo de todo este abandono es Permitir que los sistemas de archivos y la caché de página administren la memoria en porciones más grandes que PAGE_SIZE. El plan original era usar páginas compuestas como lo hace THP, pero encontré problemas con algunas funciones que esperaban solo una página de cabecera, mientras que otras esperaban que la página precisa contenga un byte en particular. El tipo folio permite que una función declare que solo espera una página de cabecera. Casi incidentalmente, esto nos permite eliminar varias llamadas a VM_BUG_ON (PageTail (página)) y composite_head ().
Esta solicitud de extracción convierte solo partes del MM principal y la caché de la página. Para 5.17, tenemos la intención de convertir varios sistemas de archivos (XFS y AFS están listos; otros sistemas de archivos pueden hacerlo) y también convertir más MM y caché de páginas en folios. Para 5.18, las publicaciones de varias páginas deben estar listas.
Las publicaciones de varias páginas ofrecen algunas mejoras a algunas cargas de trabajo. La ganancia del 80% es real, pero parece ser un punto de referencia artificial (inicio de postgres, que no es una carga de trabajo seria). Las cargas de trabajo reales (por ejemplo, compilar el kernel, ejecutar postgres en un estado estable, etc.) parecen beneficiarse entre el 0 y el 10%. No he oído hablar de pérdidas de rendimiento como resultado de esta serie. Nadie ha realizado ningún ajuste de rendimiento serio; Me imagino que ajustar el algoritmo de cabeza de lectura podría proporcionar algunas ganancias más interesantes. También hay otros lugares donde podríamos optar por crear publicaciones grandes y actualmente no lo hacemos, como escrituras que son más grandes que PAGE_SIZE.
Para los usuarios finales, significa posibles beneficios de rendimiento y más En las versiones posteriores del kernel se creará la funcionalidad en torno a las publicaciones de memoria.
Consulte la solicitud de extracción para obtener más detalles. Ahora, para ver si Linus Torvalds decide eliminar estas ~ 2k + líneas de cambios o si surgen otras objeciones nuevas/renovadas sobre la adición.