Nachdem Speicher-Folios es nicht geschafft haben in Linux 5.15 soll diese Low-Level-Änderung des Kernel-Speicherverwaltungscodes, die möglicherweise Auswirkungen auf die Leistung hat, für Linux 5.16 landen.

Vor dem Zusammenführungsfenster von Linux 5.16, das möglicherweise schon morgen geöffnet wird, schickte Matthew Wilcox seinen Pull-Request für die Einführung von Folios in den Kernel. Hier ist der Hauptauszug aus dem Pull-Request für diejenigen, die mit Folios nicht vertraut sind oder die Details vergessen haben, in denen diese Funktion im Laufe der Monate in Arbeit war:

Der Sinn dieser ganzen Abwanderung besteht darin, erlauben Dateisystemen und dem Seitencache, Speicher in größeren Blöcken als PAGE_SIZE zu verwalten. Der ursprüngliche Plan war, zusammengesetzte Seiten wie THP zu verwenden, aber ich hatte Probleme mit einigen Funktionen, die nur eine Kopfseite erwarten, während andere die genaue Seite erwarten, die ein bestimmtes Byte enthält. Der Folio-Typ ermöglicht einer Funktion zu deklarieren, dass sie nur eine Kopfseite erwartet. Dies erlaubt uns fast nebenbei, verschiedene Aufrufe von VM_BUG_ON(PageTail(page)) und Compound_head() zu entfernen.

Diese Pull-Anfrage konvertiert nur Teile des Kern-MM und des Seitencaches. Für 5.17 beabsichtigen wir, verschiedene Dateisysteme zu konvertieren (XFS und AFS sind bereit; andere Dateisysteme könnten es schaffen) und auch mehr MM-und Seiten-Cache in Folios zu konvertieren. Für 5.18 sollten mehrseitige Folios bereit sein.

Die mehrseitigen Folios bieten einige Verbesserungen bei einigen Workloads. Der Gewinn von 80 % ist real, scheint aber ein künstlicher Benchmark zu sein (Postgres-Startup, was keine ernsthafte Arbeitsbelastung darstellt). Echte Workloads (zB Kernel bauen, Postgres in einem stabilen Zustand laufen lassen usw.) scheinen zwischen 0-10% zu profitieren. Von Leistungseinbußen durch diese Serie habe ich noch nichts gehört. Niemand hat ernsthafte Leistungsoptimierungen vorgenommen; Ich kann mir vorstellen, dass eine Optimierung des Readahead-Algorithmus einige interessantere Gewinne bringen könnte. Es gibt auch andere Orte, an denen wir große Folios erstellen könnten und dies derzeit nicht tun, z. B. Schreibvorgänge, die größer als PAGE_SIZE sind.

Für Endbenutzer bedeutet dies mögliche Leistungsvorteile und mehr Bei nachfolgenden Kernel-Releases wird die Funktionalität rund um Speicher-Folios aufgebaut.

Weitere Informationen finden Sie in der Pull-Anfrage. Nun zu sehen, ob Linus Torvalds beschließt, diese ~2k+ Änderungszeilen zu übernehmen oder ob irgendwelche anderen neuen/erneuerten Einwände gegen die Hinzufügung erhoben werden.

auf den Kernel-Speicherverwaltungscode, der mögliche Auswirkungen auf die Leistung hat, soll für Linux 5.16 landen…

Categories: IT Info