LINUX KERNEL-

Matthew Wilcox de Oracle envió hoy su última serie de parches implementando el nuevo tipo de”folios de memoria”para el kernel de Linux en un esfuerzo por mejorar la administración de la memoria de Linux y permitir una mejor eficiencia que finalmente se traduce en ganancias de rendimiento mensurables.

Para aquellos que se perdieron la serie de parches anterior de Wilcox trabajando en este nuevo concepto de folios de memoria, así es como lo resume:

Administrar la memoria en páginas de 4 KB es una sobrecarga importante. Muchos puntos de referencia se benefician de un”tamaño de página”más grande. Como ejemplo, una iteración anterior de esta idea que usaba páginas compuestas (y no estaba particularmente ajustada) obtuvo un aumento de rendimiento del 7% al compilar el kernel.

El uso de páginas compuestas o THP [páginas gigantes transparentes] expone una debilidad de nuestro sistema de tipos. Las funciones a menudo no están preparadas para que se les pasen páginas compuestas y solo pueden actuar en fragmentos de PAGE_SIZE. Incluso las funciones que son conscientes de las páginas compuestas pueden esperar una página de inicio y hacer lo incorrecto si se pasa una página de cola.

También desperdiciamos muchas instrucciones asegurándonos de que no estamos viendo una página de cola. Casi todas las llamadas a PageFoo () contienen una o más llamadas ocultas a composite_head (). Esto también sucede con get_page (), put_page () y muchas más funciones. No parece haber una manera de decirle a gcc que puede almacenar en caché el resultado de composite_head (), ni hay una manera de decirle que composite_head () es idempotente.

Esta serie de parches usa un nuevo tipo, el struct folio, para administrar la memoria. Proporciona una infraestructura básica que vale la pena por sí misma, reduciendo el kernel en aproximadamente 6kB de texto.

La serie completa de parches es considerablemente más grande (~ 200 parches) y permite que XFS use páginas grandes… Una versión anterior de este conjunto de parches encontró que valía la pena una reducción del 7% del reloj de pared tiempo en las compilaciones del kernel.

Los resultados de las evaluaciones comparativas son limitados, pero a partir de los datos hasta ahora, las publicaciones en memoria resultan prometedoras para la importante velocidad de compilación del código. Desafortunadamente, esta es una serie de parches masivos y no todo el trabajo está en forma para su inclusión ascendente, por lo que probablemente pasará un tiempo antes de que las publicaciones de memoria estén listas para una posible integración, especialmente considerando este cambio fundamental en el código de administración de memoria de Linux.

Pero para aquellos interesados ​​en este concepto de folios de memoria, el lunes los parches v11 se enviaron 33 parches de los más de 200 en total.

Categories: IT Info