UPD 13 Memory Management options

This commit is contained in:
2025-04-22 01:44:46 +02:00
parent 4a8cea6e2e
commit ddeb435547

View File

@@ -128,7 +128,7 @@ Verwendung des zsmalloc-Allokators als Standard-Allokator.
\english{Use the zsmalloc allocator as the default allocator.} \english{Use the zsmalloc allocator as the default allocator.}
\paragraph{2:1 compression allocator (zbud)}$~$\\ \paragraph{2:1 compression allocator (zbud)}$~$\\
CONFIG\_ZBUD [=y] \textbf{[Y]}\\ CONFIG\_ZBUD [=m] \textbf{[M]}\\
Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu zwei Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu zwei
komprimierten Seiten pro physischer Seite ausgelegt. komprimierten Seiten pro physischer Seite ausgelegt.
Dieses Design schränkt zwar die Speicherdichte ein, hat aber einfache und deterministische Dieses Design schränkt zwar die Speicherdichte ein, hat aber einfache und deterministische
@@ -273,12 +273,16 @@ This should never be enabled for production use since keeping statistics slows d
The slabinfo command supports the determination of the most active slabs to figure out which slabs are relevant to a particular load. The slabinfo command supports the determination of the most active slabs to figure out which slabs are relevant to a particular load.
Try running: \texttt{slabinfo -DA}} Try running: \texttt{slabinfo -DA}}
%\subsubsection{SLUB per cpu partial cache} \subsubsection{Enable per cpu partial caches}
%CONFIG\_SLUB\_CPU\_PARTIAL [=y] \textbf{[Y]}\\ CONFIG\_SLUB\_CPU\_PARTIAL [=y] \textbf{[Y]}\\
%Partielle Zwischenspeicher pro CPU beschleunigen die Zuweisung und Freigabe von Objekten, die lokal auf einem Partielle Zwischenspeicher pro CPU beschleunigen die Zuweisung und Freigabe von Objekten, die lokal auf einem
%Prozessor liegen, zum Preis einer größeren Unbestimmtheit bei der Latenzzeit der Freigabe. Bei Überlauf Prozessor liegen, zum Preis einer größeren Unbestimmtheit bei der Latenzzeit der Freigabe. Bei Überlauf
%werden diese Caches geleert, was das Einnehmen von Sperren erfordert, die Latenzspitzen verursachen können. werden diese Caches geleert, was das Einnehmen von Sperren erfordert, die Latenzspitzen verursachen können.
%Normalerweise würde man sich bei einem Echtzeitsystem für nein entscheiden. Normalerweise würde man sich bei einem Echtzeitsystem für nein entscheiden.
\english{Per cpu partial caches accelerate objects allocation and freeing that is local to a processor at the price of more indeterminism
in the latency of the free.
On overflow these caches will be cleared which requires the taking of locks that may cause latency spikes.
Typically one would choose no for a realtime system.}
\subsubsection{Randomize slab caches for normal kmalloc} \subsubsection{Randomize slab caches for normal kmalloc}
CONFIG\_RANDOM\_KMALLOC\_CACHES [=n] \textbf{[N]}\\ CONFIG\_RANDOM\_KMALLOC\_CACHES [=n] \textbf{[N]}\\
@@ -371,14 +375,14 @@ Example kernel usage would be page structs and page tables\\
See Documentation/admin-guide/mm/memory-hotplug.rst for more information.} See Documentation/admin-guide/mm/memory-hotplug.rst for more information.}
\paragraph{offline}\mbox{}\\ \paragraph{offline}\mbox{}\\
CONFIG\_MHP\_DEFAULT\_ONLINE\_TYPE\_OFFLINE [=y] \textbf{[Y]}\\ CONFIG\_MHP\_DEFAULT\_ONLINE\_TYPE\_OFFLINE [=n] \textbf{[N]}\\
Hotplug-Speicher wird standardmäßig nicht eingeschaltet. Hotplug-Speicher wird standardmäßig nicht eingeschaltet.
Wählen Sie diese Option für Systeme mit Treibern und Benutzerrichtlinien, die das Einbinden des Hotplug-Speichers regeln. Wählen Sie diese Option für Systeme mit Treibern und Benutzerrichtlinien, die das Einbinden des Hotplug-Speichers regeln.
\english{Hotplugged memory will not be onlined by default. \english{Hotplugged memory will not be onlined by default.
Choose this for systems with drivers and user policy that handle onlining of hotplug memory policy.} Choose this for systems with drivers and user policy that handle onlining of hotplug memory policy.}
\paragraph{auto}\mbox{}\\ \paragraph{auto}\mbox{}\\
CONFIG\_MHP\_DEFAULT\_ONLINE\_TYPE\_ONLINE\_AUTO [=n] \textbf{[N]}\\ CONFIG\_MHP\_DEFAULT\_ONLINE\_TYPE\_ONLINE\_AUTO [=y] \textbf{[Y]}\\
Wählen Sie diese Option, wenn Sie möchten, dass der Kernel automatisch Hotplug-Speicher in die Zone online stellt, die er für sinnvoll hält. Wählen Sie diese Option, wenn Sie möchten, dass der Kernel automatisch Hotplug-Speicher in die Zone online stellt, die er für sinnvoll hält.
Dieser Speicher kann für Kernel-Daten verwendet werden. Dieser Speicher kann für Kernel-Daten verwendet werden.
\english{Select this if you want the kernel to automatically online hotplugged memory into the zone it thinks is reasonable. \english{Select this if you want the kernel to automatically online hotplugged memory into the zone it thinks is reasonable.
@@ -417,6 +421,11 @@ Leistungseinbußen aufgrund der geringeren Anzahl transparenter großer Seiten f
verwendet werden können. Das Zulassen der Verdichtung und Migration für Speicherseiten, die als Teil von verwendet werden können. Das Zulassen der Verdichtung und Migration für Speicherseiten, die als Teil von
Speicher-Ballon-Geräten eingetragen sind, vermeidet das oben beschriebene Szenario und trägt zur Verbesserung Speicher-Ballon-Geräten eingetragen sind, vermeidet das oben beschriebene Szenario und trägt zur Verbesserung
der Speicherdefragmentierung bei. der Speicherdefragmentierung bei.
\english{Memory fragmentation introduced by ballooning might reduce significantly the number of 2MB contiguous memory blocks that
can be used within a guest, thus imposing performance penalties associated with the reduced number of transparent huge pages that
could be used by the guest workload.
Allowing the compaction \& migration for memory pages enlisted as being part of memory balloon devices avoids the
scenario aforementioned and helps improving memory defragmentation.}
\subsection{Allow for memory compaction} \subsection{Allow for memory compaction}
CONFIG\_COMPACTION [=y] \textbf{[Y]}\\ CONFIG\_COMPACTION [=y] \textbf{[Y]}\\
@@ -426,12 +435,19 @@ angewiesen, und das Fehlen dieser Funktion kann bei Speicheranforderungen hoher
OOM-Killer-Aufrufen führen. Sie sollten diese Option nicht deaktivieren, es sei denn, es gibt wirklich einen OOM-Killer-Aufrufen führen. Sie sollten diese Option nicht deaktivieren, es sei denn, es gibt wirklich einen
triftigen Grund dafür, und dann wären wir sehr daran interessiert, diesen unter triftigen Grund dafür, und dann wären wir sehr daran interessiert, diesen unter
\href{mailto:linux-mm@kvack.org}{linux-mm@kvack.org} zu erfahren. \href{mailto:linux-mm@kvack.org}{linux-mm@kvack.org} zu erfahren.
\english{Compaction is the only memory management component to form high order (larger physically contiguous) memory blocks reliably.
The page allocator relies on compaction heavily and the lack of the feature can lead to unexpected OOM killer invocations
for high order memory requests.
You shouldn't disable this option unless there really is a strong reason for it and then we would be really interested
to hear about that at linux-mm@kvack.org.}
\subsection{Free page reporting} \subsection{Free page reporting}
CONFIG\_PAGE\_REPORTING [=y] \textbf{[Y]}\\ CONFIG\_PAGE\_REPORTING [=y] \textbf{[Y]}\\
Die Meldung freier Seiten ermöglicht die inkrementelle Erfassung freier Seiten vom Buddy-Allokator mit Die Meldung freier Seiten ermöglicht die inkrementelle Erfassung freier Seiten vom Buddy-Allokator mit
dem Ziel, diese Seiten einer anderen Einheit, z.\,B. einem Hypervisor, zu melden, damit der Speicher dem Ziel, diese Seiten einer anderen Einheit, z.\,B. einem Hypervisor, zu melden, damit der Speicher
innerhalb des Hosts für andere Zwecke freigegeben werden kann. innerhalb des Hosts für andere Zwecke freigegeben werden kann.
\english{Free page reporting allows for the incremental acquisition of free pages from the buddy allocator for the purpose
of reporting those pages to another entity, such as a hypervisor, so that the memory can be freed within the host for other uses.}
\subsection{Page migration} \subsection{Page migration}
CONFIG\_MIGRATION [=y] \textbf{[Y]}\\ CONFIG\_MIGRATION [=y] \textbf{[Y]}\\
@@ -440,6 +456,21 @@ Adressen nicht geändert werden. Dies ist in zwei Situationen nützlich. Erstens
Seiten näher an die zugreifenden Prozessoren zu bringen. Zweitens bei der Zuweisung großer Seiten, Seiten näher an die zugreifenden Prozessoren zu bringen. Zweitens bei der Zuweisung großer Seiten,
da durch die Migration Seiten verlagert werden können, um eine große Seitenzuweisung zu erfüllen, da durch die Migration Seiten verlagert werden können, um eine große Seitenzuweisung zu erfüllen,
anstatt sie zurückzufordern. anstatt sie zurückzufordern.
\english{Allows the migration of the physical location of pages of processes while the virtual addresses are not changed.
This is useful in two situations.
The first is on NUMA systems to put pages nearer to the processors accessing.
The second is when allocating huge pages as migration can relocate pages to satisfy a huge page allocation instead of reclaiming.}
\subsection{Maximum scale factor of PCP (Per-CPU pageset) batch allocate/free \tiny{seit 6.7}}
CONFIG\_PCP\_BATCH\_SCALE\_MAX [=5] \textbf{[5]}\\*
Bei der Seitenzuweisung wird der PCP (Per-CPU pageset) in Chargen aufgefüllt und entleert.
Die Anzahl der Stapel wird automatisch skaliert, um den Durchsatz bei der Seitenzuweisung/befreien zu verbessern.
Ein zu großer Skalierungsfaktor kann jedoch die Latenz beeinträchtigen.
Mit dieser Option wird die Obergrenze des Skalierungsfaktors festgelegt, um die maximale Latenz zu begrenzen.
\english{In page allocator, PCP (Per-CPU pageset) is refilled and drained in batches.
The batch number is scaled automatically to improve page allocation/free throughput.
But too large scale factor may hurt latency.
This option sets the upper limit of scale factor to limit the maximum latency.}
\subsection{Enable KSM for page merging} \subsection{Enable KSM for page merging}
CONFIG\_KSM [=y] \textbf{[Y]}\\ CONFIG\_KSM [=y] \textbf{[Y]}\\
@@ -451,6 +482,13 @@ oder mit anderen doppelten Anwendungen.\\
Siehe Documentation/mm/ksm.rst für weitere Informationen: KSM ist inaktiv, bis ein Programm festgestellt hat, Siehe Documentation/mm/ksm.rst für weitere Informationen: KSM ist inaktiv, bis ein Programm festgestellt hat,
dass ein Bereich MADV\_MERGEABLE ist, und root /sys/kernel/mm/ksm/run auf 1 gesetzt hat dass ein Bereich MADV\_MERGEABLE ist, und root /sys/kernel/mm/ksm/run auf 1 gesetzt hat
(wenn CONFIG\_SYSFS gesetzt ist). (wenn CONFIG\_SYSFS gesetzt ist).
\english{Enable Kernel Samepage Merging: KSM periodically scans those areas of an application's address space that an app
has advised may be mergeable.
When it finds pages of identical content, it replaces the many instances by a single page with that content, so
saving memory until one or another app needs to modify the content.
Recommended for use with KVM, or with other duplicative applications.
See Documentation/mm/ksm.rst for more information: KSM is inactive until a program has madvised that an area is MADV\_MERGEABLE,
and root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG\_SYSFS is set).}
\subsection{Low address space to protect from user allocation} \subsection{Low address space to protect from user allocation}
CONFIG\_DEFAULT\_MMAP\_MIN\_ADDR [=65536] \textbf{[65536]}\\ CONFIG\_DEFAULT\_MMAP\_MIN\_ADDR [=65536] \textbf{[65536]}\\
@@ -462,16 +500,27 @@ Auf Arm und anderen Architekturen sollte er nicht höher als 32768 sein. Program
diesen niedrigen Adressraum abbilden müssen, benötigen CAP\_SYS\_RAWIO oder deaktivieren diesen Schutz, diesen niedrigen Adressraum abbilden müssen, benötigen CAP\_SYS\_RAWIO oder deaktivieren diesen Schutz,
indem sie den Wert auf 0 setzen. Dieser Wert kann nach dem Booten mit dem Parameter /proc/sys/vm/mmap\_min\_addr indem sie den Wert auf 0 setzen. Dieser Wert kann nach dem Booten mit dem Parameter /proc/sys/vm/mmap\_min\_addr
geändert werden. geändert werden.
\english{This is the portion of low virtual memory which should be protected from userspace allocation.
Keeping a user from writing to low pages can help reduce the impact of kernel NULL pointer bugs.\\
For most arm64, ppc64 and x86 users with lots of address space a value of 65536 is reasonable and should cause no problems.
On arm and other archs it should not be higher than 32768.
Programs which use vm86 functionality or have some need to map this low address space will need CAP\_SYS\_RAWIO or disable
this protection by setting the value to 0.\\
This value can be changed after boot using the /proc/sys/vm/mmap\_min\_addr tunable.}
\subsection{Enable recovery from hardware memory errors} \subsection{Enable recovery from hardware memory errors}
CONFIG\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\ CONFIG\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\
Ermöglicht die Wiederherstellung von Code nach einigen Speicherfehlern auf Systemen mit MCA-Wieder\-her\-stel\-lung. Ermöglicht die Wiederherstellung von Code nach einigen Speicherfehlern auf Systemen mit MCA-Wieder\-her\-stel\-lung.
Dadurch kann ein System auch dann weiterlaufen, wenn ein Teil des Speichers unkorrigierte Fehler aufweist. Dies Dadurch kann ein System auch dann weiterlaufen, wenn ein Teil des Speichers unkorrigierte Fehler aufweist. Dies
erfordert spezielle Hardwareunterstützung und in der Regel ECC-Speicher. erfordert spezielle Hardwareunterstützung und in der Regel ECC-Speicher.
\english{Enables code to recover from some memory failures on systems with MCA recovery.
This allows a system to continue running even when some of its memory has uncorrected errors.
This requires special hardware support and typically ECC memory.}
\subsubsection{HWPoison pages injector} \subsubsection{HWPoison pages injector}
CONFIG\_HWPOISON\_INJECT [=m] \textbf{[M]}\\ CONFIG\_HWPOISON\_INJECT [=m] \textbf{[M]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Transparent Hugepage Support \texorpdfstring{$\rightarrow$}{->}} \subsection{Transparent Hugepage Support \texorpdfstring{$\rightarrow$}{->}}
CONFIG\_TRANSPARENT\_HUGEPAGE [=y] \textbf{[Y]}\\ CONFIG\_TRANSPARENT\_HUGEPAGE [=y] \textbf{[Y]}\\
@@ -480,26 +529,38 @@ verwenden, wann immer dies möglich ist. Diese Funktion kann die Rechenleistung
indem sie Seitenfehler bei der Speicherzuweisung beschleunigt, die Anzahl der tlb-Misses verringert und das indem sie Seitenfehler bei der Speicherzuweisung beschleunigt, die Anzahl der tlb-Misses verringert und das
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.
\english{Transparent Hugepages allows the kernel to use huge pages and huge tlb transparently to the applications whenever possible.
This feature can improve computing performance to certain applications by speeding up page faults during memory allocation,
by reducing the number of tlb misses and by speeding up the pagetable walking.\\
If memory constrained on embedded, you may want to say N.}
\subsubsection{Transparent Hugepage Support sysfs defaults () \texorpdfstring{$\rightarrow$}{->}} \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.
\english{Selects the sysfs defaults for Transparent Hugepage Support.}
\paragraph{always}$~$\\ \paragraph{always}$~$\\
CONFIG\_TRANSPARENT\_HUGEPAGE\_ALWAYS [=y] \textbf{[Y]}\\ 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.
\english{Enabling Transparent Hugepage always, can increase the memory footprint of applications without a guaranteed
benefit but it will work automatically for all applications.}
\paragraph{madvise}$~$\\ \paragraph{madvise}$~$\\
CONFIG\_TRANSPARENT\_HUGEPAGE\_MADVISE [=n] \textbf{[N]}\\ CONFIG\_TRANSPARENT\_HUGEPAGE\_MADVISE [=n] \textbf{[N]}\\
Die Aktivierung von Transparent Hugepage madvise bringt nur eine Leistungsverbesserung für die Anwendungen, die 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 madvise(MADV\_HUGEPAGE) verwenden, aber es besteht nicht die Gefahr, dass der Speicherbedarf von Anwendungen
ohne garantierten Nutzen erhöht wird. ohne garantierten Nutzen erhöht wird.
\english{Enabling Transparent Hugepage madvise, will only provide a performance improvement benefit to the applications using
madvise(MADV\_HUGEPAGE) but it won't risk to increase the memory footprint of applications without a guaranteed benefit.}
\subsubsection{Read-only THP for filesystems (EXPERIMENTAL)} \subsubsection{Read-only THP for filesystems (EXPERIMENTAL)}
CONFIG\_READ\_ONLY\_THP\_FOR\_FS [=y] \textbf{[Y]}\\ CONFIG\_READ\_ONLY\_THP\_FOR\_FS [=y] \textbf{[Y]}\\
Erlaubt khugepaged, schreibgeschützte Seiten in THP zu speichern. Dies ist als experimentell gekennzeichnet, da 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 es sich um eine neue Funktion handelt. Schreibunterstützung für Datei-THPs wird in den nächsten Release-Zyklen
entwickelt werden. entwickelt werden.
\english{Allow khugepaged to put read-only file-backed pages in THP.\\
This is marked experimental because it is a new feature.
Write support of file THPs will be developed in the next few release cycles.}
\subsection{Contiguous Memory Allocator} \subsection{Contiguous Memory Allocator}
CONFIG\_CMA [=y] \textbf{[Y]}\\ CONFIG\_CMA [=y] \textbf{[Y]}\\
@@ -508,20 +569,31 @@ zusammenhängende Speicherblöcke zuzuweisen. CMA reserviert einen Speicherberei
beweglicher Seiten aus diesem Bereich. Auf diese Weise kann der Kernel den Speicher als Pagecache verwenden, beweglicher Seiten aus diesem Bereich. Auf diese Weise kann der Kernel den Speicher als Pagecache verwenden,
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.
\english{This enables the Contiguous Memory Allocator which allows other subsystems to allocate big physically-contiguous blocks of memory.
CMA reserves a region of memory and allows only movable pages to be allocated from it.
This way, the kernel can use the memory for pagecache and when a subsystem requests for contiguous area,
the allocated pages are migrated away to serve the contiguous request.\\
If unsure, say ``n''.}
\subsubsection{CMA debug messages (DEVELOPMENT)} {\color{gray}
\subsubsection*{CMA debug messages (DEVELOPMENT) \tiny{bis 6.8}}
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.
\english{Turns on debug messages in CMA.
This produces KERN\_DEBUG messages for every CMA call as well as various messages while processing calls such as dma\_alloc\_from\_contiguous().
This option does not affect warning and error messages.}}
\subsubsection{CMA debugfs interface} \subsubsection{CMA debugfs interface}
CONFIG\_CMA\_DEBUGFS [=y] \textbf{[Y]}\\ CONFIG\_CMA\_DEBUGFS [=y] \textbf{[Y]}\\
Schaltet die DebugFS-Schnittstelle für CMA ein. Schaltet die DebugFS-Schnittstelle für CMA ein.
\english{Turns on the DebugFS interface for CMA.}
\subsubsection{CMA information through sysfs interface} \subsubsection{CMA information through sysfs interface}
CONFIG\_CMA\_SYSFS [=y] \textbf{[Y]}\\ CONFIG\_CMA\_SYSFS [=y] \textbf{[Y]}\\
Diese Option legt einige sysfs-Attribute offen, um Informationen von CMA zu erhalten. Diese Option legt einige sysfs-Attribute offen, um Informationen von CMA zu erhalten.
\english{This option exposes some sysfs attributes to get information from CMA.}
\subsubsection{Maximum count of the CMA areas} \subsubsection{Maximum count of the CMA areas}
CONFIG\_CMA\_AREAS [=7] \textbf{[7]}\\ CONFIG\_CMA\_AREAS [=7] \textbf{[7]}\\
@@ -529,6 +601,9 @@ CMA ermöglicht es, CMA-Bereiche für bestimmte Zwecke zu erstellen, die haupts
Geräts verwendet werden. Mit diesem Parameter wird die maximale Anzahl von CMA-Bereichen im System festgelegt. 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 Wenn Sie unsicher sind, belassen Sie den Standardwert \glqq 7\grqq{} bei UMA und
\glqq 19\grqq{} bei NUMA. \glqq 19\grqq{} bei NUMA.
\english{CMA allows to create CMA areas for particular purpose, mainly, used as device private area.
This parameter sets the maximum number of CMA area in the system.\\
If unsure, leave the default value ``8'' in UMA and ``20'' in NUMA.}
\subsection{Track memory changes} \subsection{Track memory changes}
CONFIG\_MEM\_SOFT\_DIRTY [=y] \textbf{[Y]}\\ CONFIG\_MEM\_SOFT\_DIRTY [=y] \textbf{[Y]}\\
@@ -536,6 +611,9 @@ Diese Option ermöglicht die Verfolgung von Speicheränderungen durch Einführun
pte-s. Dieses Bit wird gesetzt, wenn jemand in eine Seite schreibt, genau wie das reguläre Dirty Bit, aber 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 im Gegensatz zu letzterem kann es von Hand gelöscht werden. Siehe Documentation/admin-guide/mm/soft-dirty.rst
für weitere Details. für weitere Details.
\english{This option enables memory changes tracking by introducing a soft-dirty bit on pte-s.
This bit it set when someone writes into a page just as regular dirty bit, but unlike the latter it can be cleared by hands.\\
See Documentation/admin-guide/mm/soft-dirty.rst for more details.}
\subsection{Defer initialisation of struct pages to kthreads} \subsection{Defer initialisation of struct pages to kthreads}
CONFIG\_DEFERRED\_STRUCT\_PAGE\_INIT [=n] \textbf{[N]}\\ CONFIG\_DEFERRED\_STRUCT\_PAGE\_INIT [=n] \textbf{[N]}\\
@@ -544,6 +622,10 @@ großen Rechnern kann dies sehr viel Zeit in Anspruch nehmen. Wenn diese Option
Maschinen eine Teilmenge der memmap beim Booten aufgerufen und der Rest parallel initialisiert. Dies kann 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, sich auf die Leistung von Aufgaben auswirken, die zu Beginn der Lebensdauer des Systems ausgeführt werden,
bis diese kthreads die Initialisierung abgeschlossen haben. bis diese kthreads die Initialisierung abgeschlossen haben.
\english{Ordinarily all struct pages are initialised during early boot in a single thread.
On very large machines this can take a considerable amount of time.
If this option is set, large machines will bring up a subset of memmap at boot and then initialise the rest in parallel.
This has a potential performance impact on tasks running early in the lifetime of the system until these kthreads finish the initialisation.}
\subsection{Enable idle page tracking} \subsection{Enable idle page tracking}
CONFIG\_IDLE\_PAGE\_TRACKING [=y] \textbf{[Y]}\\ CONFIG\_IDLE\_PAGE\_TRACKING [=y] \textbf{[Y]}\\
@@ -551,6 +633,19 @@ Diese Funktion ermöglicht es, die Anzahl der Benutzerseiten zu schätzen, die i
nicht berührt wurden. Diese Information kann nützlich sein, um die Grenzen der Speichergruppen und/oder die 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.\\ Platzierung von Aufträgen innerhalb eines Rechenclusters zu optimieren.\\
Siehe Documentation/admin-guide/mm/idle\_page\_tracking.rst für weitere Einzelheiten. Siehe Documentation/admin-guide/mm/idle\_page\_tracking.rst für weitere Einzelheiten.
\english{This feature allows to estimate the amount of user pages that have not been touched during a given period of time.
This information can be useful to tune memory cgroup limits and/or for job placement within a compute cluster.\\
See Documentation/admin-guide/mm/idle\_page\_tracking.rst for more details.}
\subsection{Support DMA zone}
CONFIG\_ZONE\_DMA [=y] \textbf{[Y]}\\*
\textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Support DMA32 zone}
CONFIG\_ZONE\_DMA32 [=y] \textbf{[Y]}\\*
\textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Device memory (pmem, HMM, etc\dots) hotplug support} \subsection{Device memory (pmem, HMM, etc\dots) hotplug support}
CONFIG\_ZONE\_DEVICE [=y] \textbf{[Y]}\\ CONFIG\_ZONE\_DEVICE [=y] \textbf{[Y]}\\
@@ -558,17 +653,35 @@ Die Hotplug-Unterstützung für Gerätespeicher ermöglicht es, pmem oder andere
Speicherregionen in der Memmap zu etablieren. Dies ermöglicht pfn\_to\_page()-Lookups von ansonsten 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 \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. in einer O\_DIRECT-Operation erforderlich ist. Wenn FS\_DAX aktiviert ist, dann sagen Sie Y.
\english{Device memory hotplug support allows for establishing pmem, or other device driver discovered memory regions, in the memmap.
This allows pfn\_to\_page() lookups of otherwise ``device-physical'' addresses which is needed for using a DAX mapping in an
O\_DIRECT operation, among other things.\\
If FS\_DAX is enabled, then say Y.}
\subsection{Unaddressable device memory (GPU memory, \dots)} \subsection{Unaddressable device memory (GPU memory, \dots)}
CONFIG\_DEVICE\_PRIVATE [=y] \textbf{[Y]}\\ CONFIG\_DEVICE\_PRIVATE [=y] \textbf{[Y]}\\
Ermöglicht die Erstellung von Strukturseiten zur Darstellung von nicht adressierbarem Gerätespeicher, 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. 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. Wahrscheinlich sollten Sie auch HMM\_MIRROR auswählen.
\english{Allows creation of struct pages to represent unaddressable device memory;
i.e., memory that is only accessible from the device (or group of devices).
You likely also want to select HMM\_MIRROR.}
\subsection{Enable VM event counters for /proc/vmstat}
CONFIG\_VM\_EVENT\_COUNTERS [=y] \textbf{[Y]}\\
VM-Ereigniszähler werden für die Anzeige von Ereigniszählungen benötigt.
Diese Option ermöglicht die Deaktivierung der VM-Ereigniszähler auf EXPERT-Systemen.
/proc/vmstat zeigt die Seitenzahlen nur an, wenn die VM-Ereigniszähler deaktiviert sind.
\english{VM event counters are needed for event counts to be shown.
This option allows the disabling of the VM event counters on EXPERT systems.
/proc/vmstat will only show page counts if VM event counters are disabled.}
\subsection{Collect percpu memory statistics} \subsection{Collect percpu memory statistics}
CONFIG\_PERCPU\_STATS [=n] \textbf{[N]}\\ CONFIG\_PERCPU\_STATS [=n] \textbf{[N]}\\
Diese Funktion sammelt Statistiken und stellt sie über debugfs zur Verfügung. Die Informationen umfassen 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. globale und pro Chunk-Statistiken, die dazu beitragen können, die Speichernutzung der CPU zu verstehen.
\english{This feature collects and exposes statistics via debugfs.
The information includes global and per chunk statistics, which can be used to help understand percpu memory usage.}
\subsection{Enable infrastructure for get\_user\_pages()-related unit tests} \subsection{Enable infrastructure for get\_user\_pages()-related unit tests}
CONFIG\_GUP\_TEST [=n] \textbf{[N]}\\ CONFIG\_GUP\_TEST [=n] \textbf{[N]}\\
@@ -598,6 +711,18 @@ berichtet, wie lange es dauert. Damit soll ein konsistenter Weg gefunden werden,
\english{Provides a test module that will allocate and free many blocks of various sizes and report how long it takes. \english{Provides a test module that will allocate and free many blocks of various sizes and report how long it takes.
This is intended to provide a consistent way to measure how changes to the dma\_pool\_alloc/free routines affect performance.} This is intended to provide a consistent way to measure how changes to the dma\_pool\_alloc/free routines affect performance.}
\subsection{Enable memfd\_create() system call}
CONFIG\_MEMFD\_CREATE [=y] \textbf{[Y]}\\*
\textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Enable memfd\_secret() system call}
CONFIG\_SECRETMEM [=y] \textbf{[Y]}\\*
Aktivieren Sie den Systemaufruf memfd\_secret() mit der Möglichkeit, Speicherbereiche zu erstellen, die nur im Kontext des
besitzenden Prozesses sichtbar sind und nicht auf andere Prozesse und andere Kernel-Seitentabellen abgebildet werden.
\english{Enable the memfd\_secret() system call with the ability to create memory areas visible only in the context
of the owning process and not mapped to other processes and other kernel page tables.}
\subsection{Anonymous VMS name support} \subsection{Anonymous VMS name support}
CONFIG\_ANON\_VMA\_NAME [=y] \textbf{[Y]}\\ CONFIG\_ANON\_VMA\_NAME [=y] \textbf{[Y]}\\
Erlaubt die Benennung anonymer virtueller Speicherbereiche. Mit dieser Funktion können virtuellen Erlaubt die Benennung anonymer virtueller Speicherbereiche. Mit dieser Funktion können virtuellen