Nadat geheugenfolio’s het niet konden maken in Linux 5.15, deze wijziging op laag niveau in de kernelgeheugenbeheercode die mogelijke implicaties voor de prestaties heeft, lijkt te landen voor Linux 5.16.

Vooruitlopend op het samenvoegvenster van Linux 5.16 dat mogelijk morgen wordt geopend, stuurde Matthew Wilcox zijn pull-verzoek om folio’s in de kernel te introduceren. Hier is het belangrijkste fragment uit het pull-verzoek voor degenen die niet bekend zijn met folio’s of die de details zijn vergeten in de loop van de maanden dat deze functie in de maak is:

Het punt van al deze churn is om sta bestandssystemen en de paginacache toe om geheugen in grotere delen te beheren dan PAGE_SIZE. Het oorspronkelijke plan was om samengestelde pagina’s te gebruiken zoals THP doet, maar ik kwam in de problemen met sommige functies die alleen een hoofdpagina verwachtten, terwijl andere de precieze pagina verwachtten die een bepaalde byte bevat. Met het foliotype kan een functie aangeven dat deze alleen een hoofdpagina verwacht. Dit stelt ons bijna terloops in staat om verschillende aanroepen naar VM_BUG_ON(PageTail(page)) en compound_head() te verwijderen.

Dit pull-verzoek converteert slechts delen van de kern-MM en de paginacache. Voor 5.17 zijn we van plan verschillende bestandssystemen te converteren (XFS en AFS zijn gereed; andere bestandssystemen kunnen het maken) en ook meer van de MM-en paginacache naar folio’s converteren. Voor 5.18 moeten folio’s met meerdere pagina’s gereed zijn.

De folio’s met meerdere pagina’s bieden enige verbetering voor sommige werkbelastingen. De 80% winst is reëel, maar lijkt een kunstmatige maatstaf te zijn (postgres-startup, wat geen serieuze werklast is). Echte workloads (bijv. het bouwen van de kernel, het draaien van postgres in een stabiele toestand, enz.) lijken voordeel te hebben tussen 0-10%. Ik heb nog niets gehoord over prestatieverlies als gevolg van deze serie. Niemand heeft serieuze prestatieafstemmingen gedaan; Ik stel me voor dat het tweaken van het readahead-algoritme wat meer interessante overwinningen zou kunnen opleveren. Er zijn ook andere plaatsen waar we ervoor kunnen kiezen om grote folio’s te maken en momenteel niet doen, zoals schrijfacties die groter zijn dan PAGE_SIZE.

Voor eindgebruikers betekent dit mogelijke prestatievoordelen en meer volgende kernel-releases zal de functionaliteit rondom geheugenfolio’s worden opgebouwd.

Zie het pull-verzoek voor meer details. Nu kijken of Linus Torvalds besluit deze ~2k+ regels met wijzigingen door te voeren of dat er andere nieuwe/hernieuwde bezwaren worden geuit over de toevoeging.

Categories: IT Info