UPD DAMON, Data Access Monitoring FW

This commit is contained in:
2023-12-15 01:01:59 +01:00
parent b3ea9ef107
commit 0203b50327
2 changed files with 138 additions and 2 deletions

View File

@@ -4075,7 +4075,7 @@ indem sie Seitenfehler bei der Speicherzuweisung beschleunigt, die Anzahl der tl
Durchlaufen der Seitentabelle beschleunigt. Durchlaufen der Seitentabelle beschleunigt.
Wenn der Speicher bei eingebetteten Systemen begrenzt ist, können Sie N angeben. Wenn der Speicher bei eingebetteten Systemen begrenzt ist, können Sie N angeben.
\subsubsection{Transparent Hugepage Support sysfs defaults} \subsubsection{Transparent Hugepage Support sysfs defaults () \texorpdfstring{$\rightarrow$}{->}}
Wählt die sysfs-Vorgaben für die transparente Hugepage-Unterstützung aus. Wählt die sysfs-Vorgaben für die transparente Hugepage-Unterstützung aus.
\paragraph{always}$~$\\ \paragraph{always}$~$\\
@@ -4083,6 +4083,18 @@ CONFIG\_TRANSPARENT\_HUGEPAGE\_ALWAYS [=y] \textbf{[Y]}\\
Die ständige Aktivierung von Transparent Hugepage kann den Speicherbedarf von Anwendungen erhöhen, ohne dass Die ständige Aktivierung von Transparent Hugepage kann den Speicherbedarf von Anwendungen erhöhen, ohne dass
dies einen garantierten Nutzen hat, aber es funktioniert automatisch für alle Anwendungen. dies einen garantierten Nutzen hat, aber es funktioniert automatisch für alle Anwendungen.
\paragraph{madvise}$~$\\
CONFIG\_TRANSPARENT\_HUGEPAGE\_MADVISE [=n] \textbf{[N]}\\
Die Aktivierung von Transparent Hugepage madvise bringt nur eine Leistungsverbesserung für die Anwendungen, die
madvise(MADV\_HUGEPAGE) verwenden, aber es besteht nicht die Gefahr, dass der Speicherbedarf von Anwendungen
ohne garantierten Nutzen erhöht wird.
\subsubsection{Read-only THP for filesystems (EXPERIMENTAL)}
CONFIG\_READ\_ONLY\_THP\_FOR\_FS [=y] \textbf{[Y]}\\
Erlaubt khugepaged, schreibgeschützte Seiten in THP zu speichern. Dies ist als experimentell gekennzeichnet, da
es sich um eine neue Funktion handelt. Schreibunterstützung für Datei-THPs wird in den nächsten Release-Zyklen
entwickelt werden.
\subsection{Contiguous Memory Allocator} \subsection{Contiguous Memory Allocator}
CONFIG\_CMA [=y] \textbf{[Y]}\\ CONFIG\_CMA [=y] \textbf{[Y]}\\
Dadurch wird der Contiguous Memory Allocator aktiviert, der es anderen Subsystemen ermöglicht, große, physisch Dadurch wird der Contiguous Memory Allocator aktiviert, der es anderen Subsystemen ermöglicht, große, physisch
@@ -4091,10 +4103,134 @@ beweglicher Seiten aus diesem Bereich. Auf diese Weise kann der Kernel den Speic
und wenn ein Subsystem einen zusammenhängenden Bereich anfordert, werden die zugewiesenen Seiten verschoben, und wenn ein Subsystem einen zusammenhängenden Bereich anfordert, werden die zugewiesenen Seiten verschoben,
um die zusammenhängende Anforderung zu bedienen. Wenn Sie unsicher sind, sagen Sie N für nein. um die zusammenhängende Anforderung zu bedienen. Wenn Sie unsicher sind, sagen Sie N für nein.
\subsubsection{CMS debug messages (DEVELOPMENT)} \subsubsection{CMA debug messages (DEVELOPMENT)}
CONFIG\_CMA\_DEBUG [=n] \textbf{[N]}\\ CONFIG\_CMA\_DEBUG [=n] \textbf{[N]}\\
Schaltet Debug-Meldungen in CMA ein. Dies erzeugt KERN\_DEBUG-Meldungen für jeden CMA-Aufruf sowie verschiedene Schaltet Debug-Meldungen in CMA ein. Dies erzeugt KERN\_DEBUG-Meldungen für jeden CMA-Aufruf sowie verschiedene
Meldungen während der Verarbeitung von Aufrufen wie dma\_alloc\_from\_contiguous(). Diese Option hat keinen Meldungen während der Verarbeitung von Aufrufen wie dma\_alloc\_from\_contiguous(). Diese Option hat keinen
Einfluss auf Warn- und Fehlermeldungen. Einfluss auf Warn- und Fehlermeldungen.
\subsubsection{CMA debugfs interface}
CONFIG\_CMA\_DEBUGFS [=y] \textbf{[Y]}\\
Schaltet die DebugFS-Schnittstelle für CMA ein.
\subsubsection{CMA information through sysfs interface}
CONFIG\_CMA\_SYSFS [=y] \textbf{[Y]}\\
Diese Option legt einige sysfs-Attribute offen, um Informationen von CMA zu erhalten.
\subsubsection{Maximum count of the CMA areas}
CONFIG\_CMA\_AREAS [=7] \textbf{[7]}\\
CMA ermöglicht es, CMA-Bereiche für bestimmte Zwecke zu erstellen, die hauptsächlich als privater Bereich des
Geräts verwendet werden. Mit diesem Parameter wird die maximale Anzahl von CMA-Bereichen im System festgelegt.
Wenn Sie unsicher sind, belassen Sie den Standardwert \glqq 7\grqq{} bei UMA und
\glqq 19\grqq{} bei NUMA.
\subsection{Track memory changes}
CONFIG\_MEM\_SOFT\_DIRTY [=y] \textbf{[Y]}\\
Diese Option ermöglicht die Verfolgung von Speicheränderungen durch Einführung eines Soft-Dirty-Bits auf
pte-s. Dieses Bit wird gesetzt, wenn jemand in eine Seite schreibt, genau wie das reguläre Dirty Bit, aber
im Gegensatz zu letzterem kann es von Hand gelöscht werden. Siehe Documentation/admin-guide/mm/soft-dirty.rst
für weitere Details.
\subsection{Defer initialisation of struct pages to kthreads}
CONFIG\_DEFERRED\_STRUCT\_PAGE\_INIT [=n] \textbf{[N]}\\
Normalerweise werden alle Strukturseiten beim Frühstart in einem einzigen Thread initialisiert. Auf sehr
großen Rechnern kann dies sehr viel Zeit in Anspruch nehmen. Wenn diese Option gesetzt ist, wird bei großen
Maschinen eine Teilmenge der memmap beim Booten aufgerufen und der Rest parallel initialisiert. Dies kann
sich auf die Leistung von Aufgaben auswirken, die zu Beginn der Lebensdauer des Systems ausgeführt werden,
bis diese kthreads die Initialisierung abgeschlossen haben.
\subsection{Enable idle page tracking}
CONFIG\_IDLE\_PAGE\_TRACKING [=y] \textbf{[Y]}\\
Diese Funktion ermöglicht es, die Anzahl der Benutzerseiten zu schätzen, die in einem bestimmten Zeitraum
nicht berührt wurden. Diese Information kann nützlich sein, um die Grenzen der Speichergruppen und/oder die
Platzierung von Aufträgen innerhalb eines Rechenclusters zu optimieren.\\
Siehe Documentation/admin-guide/mm/idle\_page\_tracking.rst für weitere Einzelheiten.
\subsection{Device memory (pmem, HMM, etc...) hotplug support}
CONFIG\_ZONE\_DEVICE [=y] \textbf{[Y]}\\
Die Hotplug-Unterstützung für Gerätespeicher ermöglicht es, pmem oder andere vom Gerätetreiber entdeckte
Speicherregionen in der Memmap zu etablieren. Dies ermöglicht pfn\_to\_page()-Lookups von ansonsten
\glqq gerätephysikalischen\grqq{} Adressen, was unter anderem für die Verwendung einer DAX-Zuordnung
in einer O\_DIRECT-Operation erforderlich ist. Wenn FS\_DAX aktiviert ist, dann sagen Sie Y.
\subsection{Unaddressable device memory (GPU memory, ...)}
CONFIG\_DEVICE\_PRIVATE [=y] \textbf{[Y]}\\
Ermöglicht die Erstellung von Strukturseiten zur Darstellung von nicht adressierbarem Gerätespeicher,
d.~h. Speicher, auf den nur vom Gerät (oder einer Gruppe von Geräten) aus zugegriffen werden kann.
Wahrscheinlich sollten Sie auch HMM\_MIRROR auswählen.
\subsection{Collect percpu memory statistics}
CONFIG\_PERCPU\_STATS [=n] \textbf{[N]}\\
Diese Funktion sammelt Statistiken und stellt sie über debugfs zur Verfügung. Die Informationen umfassen
globale und pro Chunk-Statistiken, die dazu beitragen können, die Speichernutzung der CPU zu verstehen.
\subsection{Enable infrastructure for get\_user\_pages()-related unit tests}
CONFIG\_GUP\_TEST [=n] \textbf{[N]}\\
Stellt /sys/kernel/debug/gup\_test zur Verfügung, das wiederum eine Möglichkeit bietet, ioctl-Aufrufe zu
machen, die kernelbasierte Unit-Tests für die get\_user\_pages*()- und pin\_user\_pages*()-Familie von
API-Aufrufen starten können. Diese Tests umfassen Benchmark-Tests für die schnellen Varianten von
get\_user\_pages*() und pin\_user\_pages*() sowie Smoke-Tests für die nicht schnellen Varianten.
Es gibt auch einen Untertest, der die Ausführung von dump\_page() auf bis zu acht Seiten
(ausgewählt durch Befehlszeilen-Args) innerhalb des Bereichs der User-Space-Adressen ermöglicht.
Diese Seiten werden entweder über pin\_user\_pages*() oder über get\_user\_pages*() angeheftet, wie durch
andere Befehlszeilenargumente angegeben.\\
Siehe tools/testing/selftests/mm/gup\_test.c
% 13.23
\subsection{Enable a module to run time tests on dma\_pool}
CONFIG\_DMAPOOL\_TEST [=n] \textbf{[N]}\\
Stellt ein Testmodul zur Verfügung, das viele Blöcke unterschiedlicher Größe alloziert und freigibt und
berichtet, wie lange es dauert. Damit soll ein konsistenter Weg gefunden werden, um zu messen, wie sich
Änderungen an den dma\_pool\_alloc/free-Routinen auf die Leistung auswirken.
\subsection{Anonymous VMS name support}
CONFIG\_ANON\_VMA\_NAME [=y] \textbf{[Y]}\\
Erlaubt die Benennung anonymer virtueller Speicherbereiche. Mit dieser Funktion können virtuellen
Speicherbereichen Namen zugewiesen werden.\\
Die zugewiesenen Namen können später aus /proc/pid/maps und
/proc/pid/smaps abgerufen werden und helfen bei der Identifizierung einzelner anonymer Speicherbereiche.
Die Zuweisung eines Namens für einen anonymen virtuellen Speicherbereich kann verhindern, dass dieser
Bereich aufgrund des unterschiedlichen Namens mit benachbarten virtuellen Speicherbereichen zusammengelegt
wird.
\subsection{Enable userfaultfd() system call}
CONFIG\_USERFAULTFD [=y] \textbf{[Y]}\\
Aktivieren Sie den Systemaufruf userfaultfd(), der das Abfangen und Behandeln von Seitenfehlern im
Userland ermöglicht.
\subsection{Userfaultfd write protection support for shmem/hugetlbfs}
CONFIG\_PTE\_MARKER\_UFFD\_WP [=y] \textbf{[Y]}\\
Ermöglicht die Erstellung von Marker-PTEs für den Userfaultfd-Schreibschutz.
Sie ist erforderlich, um den userfaultfd-Schreibschutz für dateigebundene Speichertypen wie shmem
und hugetlbfs zu aktivieren.
\subsection{Multi-Gen LRU}
CONFIG\_LRU\_GEN [=y] \textbf{[Y]}\\
Eine hochleistungsfähige LRU-Implementierung zur Überbelegung von Speicher.\\
Siehe Documentation/admin-guide/mm/multigen\_lru.rst für Details.
\subsubsection{Enable by default}
CONFIG\_LRU\_GEN\_ENABLED [=y] \textbf{[Y]}\\
Mit dieser Option wird das Multi-Gen-LRU standardmäßig aktiviert.
\subsubsection{Full stats for debugging}
CONFIG\_LRU\_GEN\_STATS [=n] \textbf{[N]}\\
Aktivieren Sie diese Option nicht, es sei denn, Sie möchten sich die historischen Statistiken der
ausgeschiedenen Generationen zu Fehlersuchzwecken ansehen.
Diese Option hat einen Speicher-Overhead pro memcg und pro Knoten.
\subsection{Data Access Monitoring \texorpdfstring{$\rightarrow$}{->}}
(Überwachung des Datenzugriffs)
\subsubsection{DAMON: Data Access Monitoring Framework}
CONFIG\_DAMON [=y] \textbf{[Y]}\\
Damit wird ein Rahmen geschaffen, der es den Kernel-Subsystemen ermöglicht, die Zugriffshäufigkeit der
einzelnen Speicherbereiche zu überwachen. Diese Informationen können für eine leistungsorientierte
Speicherverwaltung auf DRAM-Ebene nützlich sein.
Weitere Informationen finden Sie unter\\
\url{https://damonitor.github.io/doc/html/latest-damon/index.html}.
\end{document} \end{document}