UPD english in General Setup
This commit is contained in:
@@ -316,8 +316,10 @@ Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N.
|
||||
\english{Exposes internal state information through debugfs.
|
||||
Mostly for developers and debugging of hard to diagnose interrupt problems.
|
||||
If you don't know what to do here, say N.}
|
||||
|
||||
%1.16 Timers subsystem
|
||||
\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||
\textit{Teilsystem Zeitgeber}
|
||||
|
||||
\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}}
|
||||
Sie müssen aus den folgenden drei Möglichkeiten eine wählen:
|
||||
@@ -427,6 +429,7 @@ Berkeley Packet Filter, Firewall-Filtertechnik im Kernel
|
||||
CONFIG\_BPF\_SYSCALL [=y] \textbf{[Y]}\\
|
||||
Aktivieren Sie den Systemaufruf bpf(), der es ermöglicht,
|
||||
BPF-Programme und -Maps über Dateideskriptoren zu manipulieren.
|
||||
\english{Enable the bpf() system call that allows to manipulate BPF programs and maps via file descriptors.}
|
||||
|
||||
\subsubsection{Enable BPF Just In Time compiler}
|
||||
CONFIG\_BPF\_JIT [=y] \textbf{[Y]}\\
|
||||
@@ -434,10 +437,17 @@ BPF-Programme werden normalerweise von einem BPF-Interpreter verarbeitet.
|
||||
Diese Option ermöglicht es dem Kernel, nativen Code zu erzeugen,
|
||||
wenn ein Programm in den Kernel geladen wird. Dadurch wird die Verarbeitung
|
||||
von BPF"=Programmen erheblich beschleunigt.\\
|
||||
Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em]
|
||||
Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em]
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_enable}\\
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_harden (optional)}\\
|
||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)}
|
||||
\english{BPF programs are normally handled by a BPF interpreter.
|
||||
This option allows the kernel to generate native code when a program is loaded into the kernel.
|
||||
This will significantly speed-up processing of BPF programs.\\
|
||||
Note, an admin should enable this feature changing:\\
|
||||
/proc/sys/net/core/bpf\_jit\_enable\\
|
||||
/proc/sys/net/core/bpf\_jit\_harden (optional)\\
|
||||
/proc/sys/net/core/bpf\_jit\_kallsyms (optional)}
|
||||
|
||||
\paragraph{Permanently enable BPF JIT and remove BPF interpreter}$~$\\
|
||||
CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\
|
||||
@@ -447,6 +457,9 @@ Wenn CONFIG\_BPF\_JIT\_ALWAYS\_ON eingeschaltet ist, dann wird
|
||||
\texttt{/proc/sys/net/core/bpf\_jit\_enable} permanent auf 1 gesetzt, alle
|
||||
Versuche diese Einstellung auf andere Werte zu legen wird mit einem Fehler
|
||||
zurückgewiesen.
|
||||
\english{Enables BPF JIT and removes BPF interpreter to avoid speculative execution of BPF instructions by the interpreter.\\
|
||||
When CONFIG\_BPF\_JIT\_ALWAYS\_ON is enabled, /proc/sys/net/core/bpf\_jit\_enable is permanently set to 1 and
|
||||
setting any other value than that will return failure.}
|
||||
|
||||
\subsubsection{Disable unprivileged BPF by default}
|
||||
CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF [=y] \textbf{[Y]}\\
|
||||
@@ -458,6 +471,10 @@ er sie auf 1 setzt (von wo aus kein weiterer Übergang auf 0 mehr möglich ist).
|
||||
Unprivilegierte BPF könnte verwendet werden, um bestimmte potenzielle Seitenkanalschwachstellen
|
||||
für spekulative Ausführung auf nicht gemilderter betroffener Hardware auszunutzen.
|
||||
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y.
|
||||
\english{Disables unprivileged BPF by default by setting the corresponding /proc/sys/kernel/unprivileged\_bpf\_disabled knob to 2.
|
||||
An admin can still reenable it by setting it to 0 later on, or permanently disable it by setting it to 1 (from which no other transition to 0 is possible anymore).
|
||||
Unprivileged BPF could be used to exploit certain potential speculative execution side-channel vulnerabilities on unmitigated affected hardware.\\
|
||||
If you are unsure how to answer this question, answer Y.}
|
||||
|
||||
\subsubsection{Preload BPF file system with kernel specific program
|
||||
and map iterators \texorpdfstring{$\rightarrow$}{->}}
|
||||
@@ -466,18 +483,24 @@ Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF"=Programmen erstellt
|
||||
die als für den Menschen lesbare Dateien in den BPF-FS"=Einhängepunkt
|
||||
eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF"=Programmen
|
||||
und -Maps nützlich ist.
|
||||
\english{This builds kernel module with several embedded BPF programs that are pinned into BPF FS mount point as human readable files
|
||||
that are useful in debugging and introspection of BPF programs and maps.}
|
||||
|
||||
\paragraph{bpf\_preload kernel module\\} $~$ \\
|
||||
\paragraph{bpf\_preload kernel module\\}$~$\\
|
||||
\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\
|
||||
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[~]}\\
|
||||
Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen
|
||||
erstellt, die als für den Menschen lesbare Dateien in den BPF-FS"=Einhängepunkt eingefügt werden,
|
||||
was bei der Fehlersuche und der Untersuchung von BPF-Programmen und -Maps nützlich ist.
|
||||
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[M]}\\*
|
||||
Damit wird das Kernelmodul bpf\_preload mit eingebetteten BPF-Programmen für die Introspektion in bpffs erstellt.
|
||||
\english{This builds bpf\_preload kernel module with embedded BPF programs for introspection in bpffs.}
|
||||
|
||||
\subsubsection{Enable BPF LSM Instrumentation}
|
||||
CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\
|
||||
Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Implementierung dynamischer
|
||||
MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten
|
||||
sollten, antworten Sie mit N.
|
||||
MAC- und Prüfungsrichtlinien.\\
|
||||
Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollten, antworten Sie mit N.
|
||||
\english{Enables instrumentation of the security hooks with BPF programs for implementing dynamic MAC
|
||||
and Audit Policies.\\
|
||||
If you are unsure how to answer this question, answer N.}
|
||||
|
||||
|
||||
%1.18
|
||||
\subsection{Preemption Model (\textcolor{gray}{Preemptible Kernel (Low-Latency Desktop)}) \texorpdfstring{$\rightarrow$}{->}}
|
||||
@@ -491,13 +514,25 @@ keine Garantie dafür und es kann zu zufälligen, längeren Verzögerungszeiten
|
||||
|
||||
Für einen Serverbetrieb wird diese Einstellung empfohlen, damit der maximale Durchsatz an Rechenleistung
|
||||
entsteht.
|
||||
\english{This is the traditional Linux preemption model, geared towards throughput.
|
||||
It will still provide good latencies most of the time, but there are no guarantees and occasional longer delays are possible.\\
|
||||
Select this option if you are building a kernel for a server or scientific/computation system,
|
||||
or if you want to maximize the raw processing power of the kernel, irrespective of scheduling latencies.}
|
||||
|
||||
\subsubsection{Voluntary Kernel Preemption (Desktop)}
|
||||
CONFIG\_PREEMPT\_VOLUNTARY \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\
|
||||
CONFIG\_PREEMPT\_VOLUNTARY \colorbox{yellow!10}{[=n] \textbf{[N]}}\\
|
||||
Diese Einstellung reduziert die Latenz des Kernels durch zusätzliche \glqq explizite Unterbrechungspunkte\glqq{}
|
||||
im Kernel.
|
||||
Diese neuen Unterbrechungspunkte wurden ausgewählt, um die maximale Latenz beim neuerlichen Zuordnen
|
||||
des Schedulers zu reduzieren und dadurch schnelle Reaktionszeiten der Applikationen zu gewährleisten. --
|
||||
Auf Kosten eines geringeren Durchsatzes wird dies erreicht.
|
||||
\english{This option reduces the latency of the kernel by adding more ``explicit preemption points'' to the kernel code.
|
||||
These new preemption points have been selected to reduce the maximum latency of rescheduling, providing faster application reactions,
|
||||
at the cost of slightly lower throughput.\\
|
||||
This allows reaction to interactive events by allowing a low priority process to voluntarily preempt itself even
|
||||
if it is in kernel mode executing a system call.
|
||||
This allows applications to run more `smoothly' even when the system is under load.\\
|
||||
Select this if you are building a kernel for a desktop system.}
|
||||
|
||||
\subsubsection{Preemptible Kernel (Low-Latency Desktop)}
|
||||
CONFIG\_PREEMPT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
|
||||
@@ -507,6 +542,23 @@ Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast.
|
||||
Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit einer Latenz im
|
||||
Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an
|
||||
Rechenleistung einher.
|
||||
\english{This option reduces the latency of the kernel by making all kernel code (that is not executing in a critical section)
|
||||
preemptible.
|
||||
This allows reaction to interactive events by permitting a low priority process to be preempted involuntarily
|
||||
even if it is in kernel mode executing a system call and would otherwise not be about to reach a natural preemption point.\\
|
||||
This allows applications to run more `smoothly' even when the system is under load, at the cost of slightly lower
|
||||
throughput and a slight runtime overhead to kernel code.\\
|
||||
Select this if you are building a kernel for a desktop or embedded system with latency requirements in the milliseconds range.}
|
||||
|
||||
\subsubsection{Scheduler controlled preemption model {\tiny seit 6.13}}
|
||||
CONFIG\_PREEMPT\_LAZY \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\
|
||||
Diese Option bietet ein Scheduler-gesteuertes Preemption-Modell, das dem vollständigen Preemption-Modell
|
||||
grundsätzlich ähnelt, aber weniger darauf bedacht ist, SCHED\_NORMAL-Tasks zu preemptieren, um die Preemption von
|
||||
Lock-Holder-Tasks zu reduzieren und einen Teil der Leistungsgewinne aus der Verwendung von Voluntary Preemption wiederherzustellen.
|
||||
\english{This option provides a scheduler driven preemption model that is fundamentally similar to full preemption,
|
||||
but is less eager to preempt SCHED\_NORMAL tasks in an attempt to reduce lock holder preemption and recover some of
|
||||
the performance gains seen from using Voluntary preemption.}
|
||||
\note{Wir testen die neue Einstellung des LAZY-Modes, dehalb hier seit Linux 6.14.2 ein Y.}
|
||||
|
||||
%1.19
|
||||
\subsection{Fully Preemtible Kernel (Real-Time)}
|
||||
@@ -544,7 +596,14 @@ sollte der potenzielle Overhead in Betracht gezogen werden.
|
||||
Interessant wird es, wenn derselbe vorgefertigte Kernel
|
||||
sowohl für Server- als auch für Desktop-Workloads verwendet
|
||||
werden soll.
|
||||
\note{Wir setzen dies nicht, da wir wissen, dass der Kernal für den Desktop kompiliert wird.}
|
||||
\english{This option allows to define the preemption model on the kernel command line parameter
|
||||
and thus override the default preemption model defined during compile time.\\
|
||||
The feature is primarily interesting for Linux distributions which provide a pre-built kernel binary
|
||||
to reduce the number of kernel flavors they offer while still offering different usecases.\\
|
||||
The runtime overhead is negligible with HAVE\_STATIC\_CALL\_INLINE enabled but if runtime patching is
|
||||
not available for the specific architecture then the potential overhead should be considered.\\
|
||||
Interesting if you want the same pre-built kernel should be used for both Server and Desktop workloads.}
|
||||
\note{Wir setzen dies auf Nein, da wir wissen, dass der Kernal für den Desktop kompiliert wird.}
|
||||
|
||||
%1.21 Core Scheduling for SMT
|
||||
\subsection{Core Scheduling for SMT}
|
||||
@@ -601,7 +660,7 @@ struct sched\_class.
|
||||
|
||||
Für weitere Informationen:\\
|
||||
Dokumentation/scheduler/sched-ext.rst\\
|
||||
\href{https://github.com/sched-ext/scx}{https://github.com/sched-ext/scx}\\[1em]
|
||||
\href{https://github.com/sched-ext/scx}{https://github.com/sched-ext/scx}
|
||||
\english{This option enables a new scheduler class sched\_ext (SCX), which
|
||||
allows scheduling policies to be implemented as BPF programs to
|
||||
achieve the following:
|
||||
@@ -617,14 +676,25 @@ sched\_ext leverages BPF struct\_ops feature to define a structure
|
||||
which exports function callbacks and flags to BPF programs that
|
||||
wish to implement scheduling policies. The struct\_ops structure
|
||||
exported by sched\_ext is struct sched\_ext\_ops, and is conceptually
|
||||
similar to struct sched\_class.}
|
||||
similar to struct sched\_class.\\
|
||||
For more information: Documentation/scheduler/sched-ext.rst \url{https://github.com/sched-ext/scx}}
|
||||
|
||||
%1.23 CPU/Task time and stats accounting
|
||||
\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
\paragraph{Simple tick based cputime accounting}\mbox{}\\
|
||||
CONFIG\_TICK\_CPU\_ACCOUNTING [=n] \textbf{[N]}\\*
|
||||
Dies ist die grundlegende tick-basierte Rechenzeitabrechnung, die Statistiken über die Benutzer-,
|
||||
System- und Leerlaufzeit auf einer Granularität von wenigen Augenblicken führt.\\
|
||||
Wenn Sie unsicher sind, sagen Sie Y.
|
||||
\english{This is the basic tick based cputime accounting that maintains statistics about user,
|
||||
system and idle time spent on per jiffies granularity.\\
|
||||
If unsure, say Y.}
|
||||
|
||||
\paragraph{Full dynticks CPU time accounting} $~$\\
|
||||
CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=y] \textbf{[Y]}\\*
|
||||
CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN \colorbox{yellow!0}{[=y] \textbf{[Y]}}\\*
|
||||
Wählen Sie diese Option, um die Berechnung der Task- und CPU-Zeit auf
|
||||
Full"=Dynticks"=Systemen zu aktivieren.
|
||||
Diese Berechnung wird durch die Überwachung aller Kernel-Benutzer-Grenzen mithilfe des
|
||||
@@ -632,6 +702,12 @@ Kontextverfolgungs-Subsystems implementiert.
|
||||
Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\
|
||||
Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen
|
||||
Dynticks-Subsystems arbeiten.
|
||||
\english{Select this option to enable task and CPU time accounting on full dynticks systems.
|
||||
This accounting is implemented by watching every kernel-user boundaries using the context tracking subsystem.
|
||||
The accounting is thus performed at the expense of some significant overhead.\\
|
||||
For now this is only useful if you are working on the full dynticks subsystem development.
|
||||
If unsure, say N.}
|
||||
\note{Wir können nur dies mit unseren Voreinstellungen auswählen.}
|
||||
|
||||
%1.23.2
|
||||
\subsubsection{Fine granularity task level IRQ time accounting}
|
||||
@@ -641,7 +717,11 @@ Task-Irq-Zeit zu aktivieren.
|
||||
Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang
|
||||
zwischen dem softirq- und dem hardirq"=Zustand, so dass es zu geringen
|
||||
Leistungseinbußen kommen kann.\\
|
||||
Im Zweifelsfall sagen Sie hier N für Nein.
|
||||
Im Zweifelsfall sagen Sie hier N für Nein.
|
||||
\english{Select this option to enable fine granularity task irq time accounting.
|
||||
This is done by reading a timestamp on each transitions between softirq and hardirq state,
|
||||
so there can be a small performance impact.\\
|
||||
If in doubt, say N here.}
|
||||
\note{Um etwas mehr Performance zu gewinnen, setzen wir dies auf N für Nein.}
|
||||
|
||||
\subsubsection{BSD Process Accounting}
|
||||
@@ -657,6 +737,13 @@ usw. (die vollständige Liste kann in der acct-Struktur in
|
||||
Es obliegt dem Programm auf Benutzerebene, nützliche Dinge mit diesen
|
||||
Informationen zu tun. Dies ist im Allgemeinen eine gute Idee, also sagen
|
||||
Sie Y für Ja.
|
||||
\english{If you say Y here, a user level program will be able to instruct the kernel
|
||||
(via a special system call) to write process accounting information to a file:
|
||||
whenever a process exits, information about that process will be appended to the file by the kernel.
|
||||
The information includes things such as creation time, owning user, command name, memory usage,
|
||||
controlling terminal etc. (the complete list is in the struct acct in $<$file:include/linux/acct.h$>$).
|
||||
It is up to the user level program to do useful things with this information.
|
||||
This is generally a good idea, so say Y.}
|
||||
|
||||
\paragraph{BSD Process Accounting version 3 file format} $~$\\
|
||||
CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\
|
||||
@@ -667,6 +754,10 @@ Dateiformat nicht mit den früheren v0/v1/v2-Dateiformaten kompatibel ist,
|
||||
so dass Sie aktualisierte Werkzeuge für die Verarbeitung benötigen.
|
||||
Eine vorläufige Version dieser Werkzeuge ist unter
|
||||
\url{http://www.gnu.org/software/acct/} verfügbar.
|
||||
\english{If you say Y here, the process accounting information is written in a new file format
|
||||
that also logs the process IDs of each process and its parent.
|
||||
Note that this file format is incompatible with previous v0/v1/v2 file formats, so you will need updated tools for processing it.
|
||||
A preliminary version of these tools is available at \url{http://www.gnu.org/software/acct/}.}
|
||||
|
||||
\subsubsection{Export task/process statistics through netlink}
|
||||
CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\
|
||||
@@ -676,6 +767,10 @@ Statistiken während der Lebensdauer von Auf\-gaben/Pro\-zes\-sen als Antwort au
|
||||
Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in
|
||||
den Benutzerbereich gesendet.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{Export selected statistics for tasks/processes through the generic netlink interface.
|
||||
Unlike BSD process accounting, the statistics are available during the lifetime of tasks/processes as responses to commands.
|
||||
Like BSD accounting, they are sent to user space on task exit.\\
|
||||
Say N if unsure.}
|
||||
|
||||
\paragraph{Enable per-task delay accounting} $~$\\
|
||||
CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\
|
||||
@@ -685,18 +780,26 @@ von Seiten aufwendet. Solche Statistiken können bei der Festlegung der
|
||||
Prioritäten eines Tasks im Verhältnis zu anderen Tasks für CPU-, IO-,
|
||||
RSS-Limits usw. helfen.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{Collect information on time spent by a task waiting for system resources like cpu, synchronous
|
||||
block I/O completion and swapping in pages.
|
||||
Such statistics can help in setting a task's priorities relative to other tasks for cpu, io, rss limits etc.\\
|
||||
Say N if unsure.}
|
||||
|
||||
\paragraph{Enable extended accounting over taskstats}$~$\\
|
||||
CONFIG\_TASK\_XACCT [=y] \textbf{[Y]}\\
|
||||
Sammeln von erweiterten Task-Accounting-Daten und Senden der Daten an
|
||||
das Userland zur Verarbeitung über die Taskstats-Schnittstelle.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{Collect extended task accounting data and send the data to userland for processing over the taskstats interface.\\
|
||||
Say N if unsure.}
|
||||
|
||||
\subparagraph{Enable per-task storage I/O accounting}$~$\\
|
||||
CONFIG\_TASK\_IO\_ACCOUNTING [=y] \textbf{[Y]}\\
|
||||
Sammeln von Informationen über die Anzahl
|
||||
der Bytes an Speicher-E/A, die dieser Task verursacht hat.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{Collect information on the number of bytes of storage I/O which this task has caused.\\
|
||||
Say N if unsure.}
|
||||
|
||||
\subsubsection{Pressure stall information tracking}
|
||||
CONFIG\_PSI [=y] \textbf{[Y]}\\
|
||||
@@ -714,6 +817,14 @@ memory.pressure- und io.pressure-Dateien, die nur die
|
||||
Druckstaus für die gruppierten Aufgaben zusammenfassen.\\
|
||||
Weitere Einzelheiten finden Sie unter Documentation/accounting/psi.rst.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{Collect metrics that indicate how overcommitted the CPU, memory, and IO capacity are in the system.\\
|
||||
If you say Y here, the kernel will create /proc/pressure/ with the pressure statistics files cpu, memory, and io.
|
||||
These will indicate the share of walltime in which some or all tasks in the system
|
||||
are delayed due to contention of the respective resource.\\
|
||||
In kernels with cgroup support, cgroups (cgroup2 only) will have cpu.pressure, memory.pressure, and io.pressure files,
|
||||
which aggregate pressure stalls for the grouped tasks only.\\
|
||||
For more details see Documentation/accounting/psi.rst.\\
|
||||
Say N if unsure.}
|
||||
|
||||
\paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\
|
||||
CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\
|
||||
@@ -727,6 +838,13 @@ Scheduler-Stresstests, wie z.\,B. Hackbench.\\
|
||||
Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird,
|
||||
sagen Sie Y für Ja.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{If set, pressure stall information tracking will be disabled per default but can
|
||||
be enabled through passing psi=1 on the kernel commandline during boot.\\
|
||||
This feature adds some code to the task wakeup and sleep paths of the scheduler.
|
||||
The overhead is too low to affect common scheduling-intense workloads in practice (such as webservers, memcache),
|
||||
but it does show up in artificial scheduler stress tests, such as hackbench.\\
|
||||
If you are paranoid and not sure what the kernel will be used for, say Y.\\
|
||||
Say N if unsure.}
|
||||
|
||||
%1.24
|
||||
\subsection{CPU isolation}
|
||||
@@ -737,6 +855,10 @@ kthreads usw. gestört werden.\\
|
||||
Ungebundene Aufgaben werden auf Housekeeping"=CPUs verlagert.
|
||||
Dies wird durch den Boot-Parameter \texttt{isolcpus=} gesteuert.\\
|
||||
Sagen Sie Y für ja, wenn Sie unsicher sind.
|
||||
\english{Make sure that CPUs running critical tasks are not disturbed by any source of ``noise''
|
||||
such as unbound workqueues, timers, kthreads...
|
||||
Unbound jobs get offloaded to housekeeping CPUs.
|
||||
This is driven by the ``isolcpus='' boot parameter.}
|
||||
|
||||
%1.25
|
||||
\subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||
@@ -752,10 +874,13 @@ davon abhält, alle möglichen detaillierten Fragen darüber zu stellen,
|
||||
wie Sie zahlreiche obskure RCU"=Optionen eingerichtet haben möchten.\\
|
||||
Sagen Sie Y, wenn Sie Anpassungen an RCU auf Expertenebene vornehmen müssen.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\\\begin{scriptsize}
|
||||
Wie bei Debian Bookworm setzen wir dies auf ein Nein.
|
||||
\end{scriptsize}
|
||||
|
||||
\english{This option needs to be enabled if you wish to make expert-level adjustments to RCU configuration.
|
||||
By default, no such adjustments can be made, which has the often-beneficial side-effect of preventing
|
||||
``make oldconfig'' from asking you all sorts of detailed questions about how you would like numerous
|
||||
obscure RCU options to be set up.\\
|
||||
Say Y if you need to make expert-level adjustments to RCU.\\
|
||||
Say N if you are unsure.}
|
||||
\note{Wie bei Debian Bookworm setzen wir dies auf ein N für Nein.}
|
||||
|
||||
\subsubsection{Force selection of TASKS\_RCU}
|
||||
CONFIG\_FORCE\_TASKS\_RCU [=n] \textbf{[N]}\\
|
||||
@@ -763,6 +888,9 @@ Diese Option erzwingt eine aufgabenbasierte RCU-Implementierung die nur
|
||||
freiwillige Kontextwechsel verwendet (keine Preemption!), Leerlauf und
|
||||
Benutzermodus-Ausführung als Ruhezustände verwendet.
|
||||
Nicht für manuelle Auswahl in den meisten Fällen.
|
||||
\english{This option force-enables a task-based RCU implementation that uses only voluntary context switch
|
||||
(not preemption!), idle, and user-mode execution as quiescent states.
|
||||
Not for manual selection in most cases.}
|
||||
|
||||
\subsubsection{Force selection of Tasks Rude RCU}
|
||||
CONFIG\_FORCE\_TASKS\_RUDE\_RCU [=n] \textbf{[N]}\\
|
||||
@@ -772,6 +900,11 @@ Benutzermodus als Ruhezustand verwendet. Sie erzwingt IPIs und
|
||||
Kontextwechsel auf allen Online"=CPUs, auch auf den Idle"=CPUs, also
|
||||
mit Vorsicht verwenden.
|
||||
In den meisten Fällen nicht für die manuelle Auswahl geeignet.
|
||||
\english{This option force-enables a task-based RCU implementation that uses only context switch
|
||||
(including preemption) and user-mode execution as quiescent states.
|
||||
It forces IPIs and context switches on all online CPUs, including idle ones, so use with caution.
|
||||
Not for manual selection in most cases.}
|
||||
|
||||
|
||||
\subsubsection{Force selection of Tasks Trace RCU}
|
||||
CONFIG\_FORCE\_TASKS\_TRACE\_RCU [=n] \textbf{[N]}\\
|
||||
@@ -781,6 +914,10 @@ dass diese Leser sowohl in der Leerlaufschleife als auch in den
|
||||
CPU"=Hotplug"=Codepfaden erscheinen. Es kann IPIs auf Online-CPUs erzwingen,
|
||||
auch auf Idle-CPUs, also mit Vorsicht verwenden.
|
||||
In den meisten Fällen nicht für die manuelle Auswahl geeignet.
|
||||
\english{This option enables a task-based RCU implementation that uses explicit rcu\_read\_lock\_trace()
|
||||
read-side markers, and allows these readers to appear in the idle loop as well as on the CPU hotplug code paths.
|
||||
It can force IPIs on online CPUs, including idle ones, so use with caution.
|
||||
Not for manual selection in most cases.}
|
||||
|
||||
\subsubsection{Tree-based hierarchical RCU fanout value}
|
||||
CONFIG\_RCU\_FANOUT [=64] \textbf{[64]}\\
|
||||
@@ -797,6 +934,12 @@ Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\
|
||||
Symbol: RCU\_FANOUT [=64]\\
|
||||
Type : integer (Ganzzahl)\\
|
||||
Bereich (range) : [2 64]
|
||||
\english{This option controls the fanout of hierarchical implementations of RCU, allowing RCU to work
|
||||
efficiently on machines with large numbers of CPUs.
|
||||
This value must be at least the fourth root of NR\_CPUS, which allows NR\_CPUS to be insanely large.
|
||||
The default value of RCU\_FANOUT should be used for production systems, but if you are stress-testing
|
||||
the RCU implementation itself, small RCU\_FANOUT values allow you to test large-system code paths on small(er) systems.\\
|
||||
Select a specific number if testing RCU itself. Take the default if unsure.}
|
||||
|
||||
\subsubsection{Tree-based hierarchical RCU leaf-level fanout value}
|
||||
CONFIG\_RCU\_FANOUT\_LEAF [=16] \textbf{[16]}\\
|
||||
@@ -824,6 +967,20 @@ Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\
|
||||
Symbol: RCU\_FANOUT\_LEAF [=64]\\
|
||||
Type : integer (Ganzzahl)\\
|
||||
Bereich (range) : [2 64]
|
||||
\english{This option controls the leaf-level fanout of hierarchical implementations of RCU,
|
||||
and allows trading off cache misses against lock contention.
|
||||
Systems that synchronize their scheduling-clock interrupts for energy-efficiency reasons will
|
||||
want the default because the smaller leaf-level fanout keeps lock contention levels acceptably low.
|
||||
Very large systems (hundreds or thousands of CPUs) will instead want to set this value to the maximum
|
||||
value possible in order to reduce the number of cache misses incurred during RCU's grace-period initialization.
|
||||
These systems tend to run CPU-bound, and thus are not helped by synchronized interrupts, and thus tend to
|
||||
skew them, which reduces lock contention enough that large leaf-level fanouts work well.
|
||||
That said, setting leaf-level fanout to a large number will likely cause problematic lock contention
|
||||
on the leaf-level rcu\_node structures unless you boot with the skew\_tick kernel parameter.\\
|
||||
Select a specific number if testing RCU itself.\\
|
||||
Select the maximum permissible value for large systems, but please understand that you may also
|
||||
need to set the skew\_tick kernel boot parameter to avoid contention on the rcu\_node structure's locks.\\
|
||||
Take the default if unsure.}
|
||||
|
||||
\subsubsection{Enable RCU priority boosting}
|
||||
CONFIG\_RCU\_BOOST [=y] \textbf{[Y]}\\
|
||||
@@ -833,6 +990,11 @@ Diese Option verhindert auch, dass schwere Lasten den Aufruf von RCU"=Callbacks
|
||||
blockieren.\\
|
||||
Geben Sie hier Y an, wenn Sie mit Echtzeitanwendungen oder großen Lasten arbeiten.\\
|
||||
Sagen Sie hier N ein, wenn Sie unsicher sind.
|
||||
\english{This option boosts the priority of preempted RCU readers that block the current preemptible
|
||||
RCU grace period for too long.
|
||||
This option also prevents heavy loads from blocking RCU callback invocation.\\
|
||||
Say Y here if you are working with real-time apps or heavy loads\\
|
||||
Say N here if you are unsure.}
|
||||
|
||||
\paragraph{Milliseconds to delay boosting after RCU grace-period start}$~$\\
|
||||
CONFIG\_RCU\_BOOST\_DELAY [=500] \textbf{[500]}\\
|
||||
@@ -845,6 +1007,10 @@ Akzeptieren Sie die Standardeinstellung, wenn Sie unsicher sind.\\
|
||||
Symbol: RCU\_BOOST\_DELAY [=500]\\
|
||||
Typ : Integer (Ganzzahl)\\
|
||||
Bereich : [0 3000]
|
||||
\english{This option specifies the time to wait after the beginning of a given grace period before
|
||||
priority-boosting preempted RCU readers blocking that grace period.
|
||||
Note that any RCU reader blocking an expedited RCU grace period is boosted immediately.\\
|
||||
Accept the default if unsure.}
|
||||
|
||||
\paragraph{Perform RCU expedited work in a real-time kthread}$~$\\
|
||||
CONFIG\_RCU\_EXP\_KTHREAD [=n] \textbf{[N]}\\
|
||||
@@ -854,6 +1020,11 @@ Diese Option ist standardmäßig auf PREEMPT\_RT=y-Kerneln deaktiviert,
|
||||
die beschleunigte Neuheitsschonfristen nach dem Booten durch die bedingungslose
|
||||
Einstellung rcupdate.rcu\_normal\_after\_boot=1 deaktivieren.\\
|
||||
Akzeptieren Sie die Voreinstellung, wenn Sie unsicher sind.
|
||||
\english{Use this option to further reduce the latencies of expedited grace
|
||||
periods at the expense of being more disruptive.\\
|
||||
This option is disabled by default on PREEMPT\_RT=y kernels which disable expedited grace periods
|
||||
after boot by unconditionally setting rcupdate.rcu\_normal\_after\_boot=1.\\
|
||||
Accept the default if unsure.}
|
||||
|
||||
\subsubsection{Offload RCU callback processing from boot-selected CPUs}
|
||||
CONFIG\_RCU\_NOCB\_CPU [=y] \textbf{[Y]}\\
|
||||
@@ -875,6 +1046,23 @@ kthreads zu zwingen, auf jeder gewünschten Gruppe von CPUs zu laufen.\\
|
||||
Sagen Sie hier Y, wenn Sie trotz des zusätzlichen Overheads ein geringeres
|
||||
OS-Jitter benötigen.\\
|
||||
Sagen Sie hier N, wenn Sie unsicher sind.
|
||||
\english{Use this option to reduce OS jitter for aggressive HPC or real-time workloads.
|
||||
It can also be used to offload RCU callback invocation to energy-efficient CPUs in battery-powered asymmetric multiprocessors.
|
||||
The price of this reduced jitter is that the overhead of call\_rcu() increases and that some workloads will incur
|
||||
significant increases in context-switch rates.\\
|
||||
This option offloads callback invocation from the set of CPUs specified at boot time by the rcu\_nocbs parameter.
|
||||
For each such CPU, a kthread (``rcuox/N'') will be created to invoke callbacks, where the ``N'' is the CPU
|
||||
being offloaded, and where the ``x'' is ``p'' for RCU-preempt (PREEMPTION kernels) and ``s'' for RCU-sched
|
||||
(!PREEMPTION kernels).
|
||||
This option also creates another kthread for each sqrt(nr\_cpu\_ids) CPUs (``rcuog/N'', where N is
|
||||
the first CPU in that group to come online), which handles grace periods for its group.
|
||||
Nothing prevents these kthreads from running on the specified CPUs, but (1) the kthreads may be preempted
|
||||
between each callback, and (2) affinity or cgroups can be used to force the kthreads to run on whatever set
|
||||
of CPUs is desired.\\
|
||||
The sqrt(nr\_cpu\_ids) grouping may be overridden using the rcutree.rcu\_nocb\_gp\_stride kernel boot parameter.
|
||||
This can be especially helpful for smaller numbers of CPUs, where sqrt(nr\_cpu\_ids) can be a bit of a blunt instrument.\\
|
||||
Say Y here if you need reduced OS jitter, despite added overhead.
|
||||
Say N here if you are unsure.}
|
||||
|
||||
\paragraph{Offload RCU callback processing from all CPUs by default}$~$\\
|
||||
CONFIG\_RCU\_NOCB\_CPU\_DEFAULT\_ALL [=n] \textbf{[N]}\\
|
||||
@@ -884,6 +1072,11 @@ ist. Dadurch wird auch die Notwendigkeit vermieden, Boot-Parameter zu verwenden,
|
||||
den Effekt der Entlastung aller CPUs beim Booten zu erreichen.\\
|
||||
Geben Sie hier Y an, wenn Sie alle CPUs standardmäßig beim Booten entlasten wollen.\\
|
||||
Sagen Sie hier N, wenn Sie sich nicht sicher sind.
|
||||
\english{Use this option to offload callback processing from all CPUs by default,
|
||||
in the absence of the rcu\_nocbs or nohz\_full boot parameter.
|
||||
This also avoids the need to use any boot parameters to achieve the effect of offloading all CPUs on boot.\\
|
||||
Say Y here if you want offload all CPUs by default on boot.
|
||||
Say N here if you are unsure.}
|
||||
|
||||
\paragraph{Offload RCU callback from real-time kthread}$~$\\
|
||||
CONFIG\_RCU\_NOCB\_CPU\_CB\_BOOST [=n] \textbf{[N]}\\
|
||||
@@ -897,6 +1090,14 @@ ausgeführt werden.\\
|
||||
Geben Sie hier Y an, wenn Sie die RT-Priorität für die Auslagerung von kthreads
|
||||
festlegen möchten.\\
|
||||
Sagen Sie hier N, wenn Sie einen !PREEMPT\_RT-Kernel bauen und sich unsicher sind.
|
||||
\english{Use this option to invoke offloaded callbacks as SCHED\_FIFO to avoid starvation by heavy
|
||||
SCHED\_OTHER background load.
|
||||
Of course, running as SCHED\_FIFO during callback floods will cause the rcuo[ps] kthreads to monopolize the CPU
|
||||
for hundreds of milliseconds or more.
|
||||
Therefore, when enabling this option, it is your responsibility to ensure that latency-sensitive tasks
|
||||
either run with higher priority or run on some other CPU.\\
|
||||
Say Y here if you want to set RT priority for offloading kthreads.
|
||||
Say N here if you are building a !PREEMPT\_RT kernel and are unsure.}
|
||||
|
||||
\subsubsection{Tasks Trace RCU readers use memory barriers in user and idle}
|
||||
CONFIG\_TASKS\_TRACE\_RCU\_READ\_MB [=n] \textbf{[N]}\\
|
||||
@@ -912,11 +1113,21 @@ gewählte Standardeinstellung.\\
|
||||
Sagen Sie hier Y, wenn Sie IPIs hassen.\\
|
||||
Sagen Sie hier N, wenn Sie leseseitige Speicherbarrieren hassen.\\
|
||||
Nehmen Sie die Standardeinstellung, wenn Sie unsicher sind.
|
||||
\english{Use this option to further reduce the number of IPIs sent to CPUs executing in userspace or idle during
|
||||
tasks trace RCU grace periods.
|
||||
Given that a reasonable setting of the rcupdate.rcu\_task\_ipi\_delay kernel boot parameter eliminates such IPIs
|
||||
for many workloads, proper setting of this Kconfig option is important mostly for aggressive real-time
|
||||
installations and for battery-powered devices, hence the default chosen above.\\
|
||||
Say Y here if you hate IPIs. Say N here if you hate read-side memory barriers.
|
||||
Take the default if you are unsure.}
|
||||
|
||||
\subsubsection{RCU callback lazy invocation functionality}
|
||||
CONFIG\_RCU\_LAZY [=y] \textbf{[Y]}\\
|
||||
Um Strom zu sparen, sollten Sie RCU-Rückrufe stapeln und nach einer Verzögerung,
|
||||
einem Speicherdruck oder einer zu großen Rückrufliste flushen.
|
||||
\english{To save power, batch RCU callbacks and flush after delay, memory pressure, or callback list growing too big.\\
|
||||
Requires rcu\_nocbs=all to be set.\\
|
||||
Use rcutree.enable\_rcu\_lazy=0 to turn it off at boot time.}
|
||||
|
||||
\paragraph{Turn RCU lazy invocation off by default}{\tiny seit 6.9}$~$\\
|
||||
CONFIG\_RCU\_LAZY\_DEFAULT\_OFF [=n] \textbf{[N]}\\
|
||||
@@ -936,6 +1147,13 @@ Diese Option rundet rcutree.rcu\_resched\_ns auf den nächsten Jiffy auf und set
|
||||
die 32-Callback-Batching-Funktion außer Kraft, wenn diese Grenze überschritten wird.\\
|
||||
Sagen Sie hier Y, wenn Sie eine strengere Durchsetzung des Rückruflimits benötigen.\\
|
||||
Sagen Sie hier N, wenn Sie unsicher sind.
|
||||
\english{Use this option to provide more precise enforcement of the rcutree.rcu\_resched\_ns module parameter
|
||||
in situations where a single RCU callback might run for hundreds of microseconds, thus defeating the 32-callback
|
||||
batching used to amortize the cost of the fine-grained but expensive local\_clock() function.\\
|
||||
This option rounds rcutree.rcu\_resched\_ns up to the next jiffy, and overrides the 32-callback batching
|
||||
if this limit is exceeded.\\
|
||||
Say Y here if you need tighter callback-limit enforcement.
|
||||
Say N here if you are unsure.}
|
||||
|
||||
% 1.26
|
||||
\subsection{Kernel .config support}
|
||||
@@ -949,9 +1167,13 @@ Kernel neu zu erstellen oder einen anderen Kernel zu bauen.
|
||||
Sie können auch aus einem laufenden Kernel extrahiert werden, indem
|
||||
/proc/config.gz gelesen wird, falls dies aktiviert ist (siehe unten).\\
|
||||
Definiert mit init/Kconfig:686
|
||||
\\\begin{scriptsize}
|
||||
Ist nicht unbedingt notwendig, auch in Debian Bookworm ist dies ausgeschaltet.
|
||||
\end{scriptsize}
|
||||
\english{This option enables the complete Linux kernel ``.config'' file contents to be saved in the kernel.
|
||||
It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel.
|
||||
This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and
|
||||
used as input to rebuild the current kernel or to build another kernel.
|
||||
It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).}
|
||||
\note{Ist nicht unbedingt notwendig, auch in Debian Bookworm ist dies ausgeschaltet.}
|
||||
|
||||
\subsubsection{Enable access to .config through /proc/config.gz}
|
||||
CONFIG\_IKCONFIG\_PROC [=y] \textbf{[Y]}\\
|
||||
Diese Option ermöglicht den Zugriff auf die Kernelkonfigurationsdatei über
|
||||
@@ -965,9 +1187,11 @@ Build-Prozesses erzeugt werden. Diese können verwendet werden, um
|
||||
eBPF-Tracing-Programme oder ähnliche Programme zu erstellen. Wenn Sie die Header
|
||||
als Modul erstellen, wird ein Modul namens \texttt{kheaders.ko} erstellt, das bei Bedarf
|
||||
geladen werden kann, um Zugriff auf die Header zu erhalten.
|
||||
\\\begin{scriptsize}
|
||||
Ist auch als Modul nicht unbedingt notwendig, wie auch in Debian Bookworm wird dies ausgeschaltet.
|
||||
\end{scriptsize}
|
||||
\english{This option enables access to the in-kernel headers that are generated during the build process.
|
||||
These can be used to build eBPF tracing programs, or similar programs.
|
||||
If you build the headers as a module, a module called kheaders.ko is built which can be loaded on-demand
|
||||
to get access to headers.}
|
||||
\note{Ist auch als Modul nicht unbedingt notwendig, wie auch in Debian Bookworm wird dies ausgeschaltet.}
|
||||
|
||||
%1.28
|
||||
\subsection{Kernel log buffer size (16 \texorpdfstring{$\Rightarrow$}{=>} 64KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)}
|
||||
@@ -986,6 +1210,16 @@ Beispiele:\\
|
||||
Symbol: LOG\_BUF\_SHIFT\\
|
||||
Type: Integer (Ganzzahl)\\
|
||||
Bereich (range): [12 25]
|
||||
\english{Select the minimal kernel log buffer size as a power of 2.
|
||||
The final size is affected by LOG\_CPU\_MAX\_BUF\_SHIFT config parameter, see below.
|
||||
Any higher size also might be forced by ``log\_buf\_len'' boot parameter.\\
|
||||
Examples:\\
|
||||
\indent 17 $=>$ 128 KB\\
|
||||
\indent 16 $=>$ 64 KB\\
|
||||
\indent 15 $=>$ 32 KB\\
|
||||
\indent 14 $=>$ 16 KB\\
|
||||
\indent 13 $=> $ 8 KB\\
|
||||
\indent 12 $=> $ 4 KB}
|
||||
|
||||
%1.29
|
||||
\subsection{CPU kernel log buffer size contribution (13 \texorpdfstring{$\Rightarrow$}{=>} 8 KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)}
|
||||
@@ -1014,6 +1248,24 @@ werden kann. Beispiele für Verschiebungswerte und ihre Bedeutung:\\
|
||||
Symbol: LOG\_CPU\_MAX\_BUF\_SHIFT\\
|
||||
Type: Integer (Ganzzahl)\\
|
||||
Bereich (range): [0 21]
|
||||
\english{This option allows to increase the default ring buffer size according to the number of CPUs.
|
||||
The value defines the contribution of each CPU as a power of 2.
|
||||
The used space is typically only few lines however it might be much more when problems are reported, e.g. backtraces.\\
|
||||
The increased size means that a new buffer has to be allocated and the original static one is unused.
|
||||
It makes sense only on systems with more CPUs.
|
||||
Therefore this value is used only when the sum of contributions is greater than the half of the default kernel ring
|
||||
buffer as defined by LOG\_BUF\_SHIFT.
|
||||
The default values are set so that more than 16~CPUs are needed to trigger the allocation.\\
|
||||
Also this option is ignored when ``log\_buf\_len'' kernel parameter is used as it forces an exact (power of two) size of the ring buffer.\\
|
||||
The number of possible CPUs is used for this computation ignoring hotplugging making the computation optimal for the worst case
|
||||
scenario while allowing a simple algorithm to be used from bootup.\\
|
||||
Examples shift values and their meaning:\\
|
||||
\indent 17 $=>$ 128 KB for each CPU\\
|
||||
\indent 16 $=>$ 64 KB for each CPU\\
|
||||
\indent 15 $=>$ 32 KB for each CPU\\
|
||||
\indent 14 $=>$ 16 KB for each CPU\\
|
||||
\indent 13 $=>$ 8 KB for each CPU\\
|
||||
\indent 12 $=>$ 4 KB for each CPU}
|
||||
|
||||
%1.30
|
||||
\subsection{Printk indexing debugfs interface)}
|
||||
@@ -1025,10 +1277,12 @@ Dies kann als Teil der Wartung von Daemonen, die /dev/kmsg überwachen,
|
||||
verwendet werden, da es die Überprüfung der in einem Kernel vorhandenen
|
||||
printk-Formate erlaubt, was die Erkennung von Fällen ermöglicht,
|
||||
in denen überwachte printks geändert oder nicht mehr vorhanden sind.\\
|
||||
Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist.
|
||||
\\\begin{scriptsize}
|
||||
Wie bei Debian Bookworm wird diese Indizierung ausgeschaltet.
|
||||
\end{scriptsize}
|
||||
Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist.
|
||||
\english{Add support for indexing of all printk formats known at compile time at $<$debugfs$>$/printk/index/$<$module$>$.\\
|
||||
This can be used as part of maintaining daemons which monitor /dev/kmsg, as it permits auditing the printk formats present in a kernel,
|
||||
allowing detection of cases where monitored printks are changed or no longer present.\\
|
||||
There is no additional runtime cost to printk with this enabled.}
|
||||
\note{Wie bei Debian Bookworm wird diese Indizierung ausgeschaltet.}
|
||||
|
||||
%1.31
|
||||
\subsection{Scheduler features \texorpdfstring{$\rightarrow$}{->}}
|
||||
@@ -1046,9 +1300,13 @@ Sowohl die Minimal- als auch die Maximalwerte für die Auslastung sind Hinweise
|
||||
für den Scheduler, um seine Frequenzauswahl zu verbessern, aber sie erzwingen
|
||||
oder gewähren keine bestimmte Bandbreite für Tasks.\\
|
||||
Im Zweifelsfall sagen Sie N für Nein.
|
||||
\\\begin{scriptsize}
|
||||
Wie bei Debian Bookworm und WSL2 wird dies ausgeschaltet.
|
||||
\end{scriptsize}
|
||||
\english{This feature enables the scheduler to track the clamped utilization of each CPU based on RUNNABLE tasks scheduled on that CPU.\\
|
||||
With this option, the user can specify the min and max CPU utilization allowed for RUNNABLE tasks.
|
||||
The max utilization defines the maximum frequency a task should use while the min utilization defines the minimum frequency it should use.\\
|
||||
Both min and max utilization clamp values are hints to the scheduler, aiming at improving its frequency selection policy,
|
||||
but they do not enforce or grant any specific bandwidth for tasks.\\
|
||||
If in doubt, say N.}
|
||||
\note{Wie bei Debian Bookworm und WSL2 wird dies ausgeschaltet.}
|
||||
|
||||
\paragraph{Number of supported utilization clamp buckets}$~$\\
|
||||
CONFIG\_UCLAMP\_BUCKETS\_COUNT [=5] \textbf{[5]}\\
|
||||
@@ -1075,6 +1333,19 @@ möglich, den Spielraum zu verringern, indem die Anzahl der Clamp"=Buckets
|
||||
erhöht wird, um den verbrauchten Speicher gegen die Genauigkeit der
|
||||
Laufzeitverfolgung einzutauschen.\\
|
||||
Im Zweifelsfall sollten Sie den Standardwert verwenden.
|
||||
\english{Defines the number of clamp buckets to use.
|
||||
The range of each bucket will be SCHED\_CAPACITY\_SCALE/UCLAMP\_BUCKETS\_COUNT.
|
||||
The higher the number of clamp buckets the finer their granularity and the higher the precision of clamping aggregation and tracking at run-time.\\
|
||||
For example, with the minimum configuration value we will have 5~clamp buckets tracking 20\% utilization each.
|
||||
A 25\% boosted tasks will be refcounted in the [20..39]\% bucket and will set the bucket clamp effective value to 25\%.\\
|
||||
If a second 30\% boosted task should be co-scheduled on the same CPU, that task will be refcounted in the same bucket of the first task
|
||||
and it will boost the bucket clamp effective value to 30\%.
|
||||
The clamp effective value of a bucket is reset to its nominal value (20\% in the example above) when there are no more tasks refcounted in that bucket.\\
|
||||
An additional boost/capping margin can be added to some tasks.
|
||||
In the example above the 25\% task will be boosted to 30\% until it exits the CPU.
|
||||
If that should be considered not acceptable on certain systems, it's always possible to reduce the margin by increasing the number of
|
||||
clamp buckets to trade off used memory for run-time tracking precision.\\
|
||||
If in doubt, use the default value.}
|
||||
|
||||
%1.32
|
||||
\subsection{Memory placement aware NUMA scheduler}
|
||||
@@ -1114,6 +1385,11 @@ wie Task-Migrationen und Controller-Ein-/Ausschaltungen
|
||||
auf Kosten von Hot-Path-Operationen wie Forks und Exits
|
||||
verteuert.\\
|
||||
Sagen Sie N, wenn Sie unsicher sind.
|
||||
\english{This option enables the ``favordynmods'' mount option by default which reduces the latencies of dynamic
|
||||
cgroup modifications such as task migrations and controller on/offs at the cost of making hot path operations
|
||||
such as forks and exits more expensive.\\
|
||||
Say N if unsure.}
|
||||
|
||||
|
||||
%1.33.2
|
||||
\subsubsection{Memory controller}
|
||||
|
||||
Reference in New Issue
Block a user