UPD 13 Memory Management options
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user