UPD english in General Setup

This commit is contained in:
2025-04-13 21:34:28 +02:00
parent 3579826ebc
commit d00b1449e7
4 changed files with 499 additions and 224 deletions

View File

@@ -12,7 +12,6 @@ CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24400
CONFIG_LLD_VERSION=0
CONFIG_RUSTC_VERSION=108600
CONFIG_RUST_IS_AVAILABLE=y
CONFIG_RUSTC_LLVM_VERSION=190107
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
@@ -132,16 +131,18 @@ CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_BPF_LSM=y
# end of BPF subsystem
CONFIG_PREEMPT_VOLUNTARY_BUILD=y
CONFIG_PREEMPT_BUILD=y
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_LAZY is not set
CONFIG_PREEMPT_LAZY=y
# CONFIG_PREEMPT_RT is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
# CONFIG_PREEMPT_DYNAMIC is not set
CONFIG_SCHED_CORE=y
CONFIG_SCHED_CLASS_EXT=y
# CONFIG_SCHED_CORE is not set
# CONFIG_SCHED_CLASS_EXT is not set
#
# CPU/Task time and stats accounting
@@ -165,10 +166,12 @@ CONFIG_CPU_ISOLATION=y
# RCU Subsystem
#
CONFIG_TREE_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
CONFIG_TASKS_RUDE_RCU=y
CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
@@ -214,7 +217,6 @@ CONFIG_GROUP_SCHED_WEIGHT=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_EXT_GROUP_SCHED=y
CONFIG_SCHED_MM_CID=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
@@ -308,9 +310,6 @@ CONFIG_PERF_EVENTS=y
CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_RUST=y
CONFIG_RUSTC_VERSION_TEXT="rustc 1.86.0 (05f9846f8 2025-03-31) (Arch Linux rust 1:1.86.0-1)"
CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.71.1"
CONFIG_TRACEPOINTS=y
#
@@ -1036,11 +1035,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
@@ -2319,7 +2314,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
#
CONFIG_FW_LOADER=y
CONFIG_FW_LOADER_DEBUG=y
CONFIG_RUST_FW_LOADER_ABSTRACTIONS=y
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_EXTRA_FIRMWARE=""
@@ -2635,7 +2629,6 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RUST_NULL is not set
CONFIG_BLK_DEV_RBD=m
CONFIG_BLK_DEV_UBLK=m
CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y
@@ -5999,6 +5992,7 @@ CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
CONFIG_CEC_CH7322=m
CONFIG_CEC_CROS_EC=m
# CONFIG_CEC_GPIO is not set
CONFIG_CEC_SECO=m
CONFIG_CEC_SECO_RC=y
CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC=m
@@ -6928,9 +6922,6 @@ CONFIG_DRM_PANIC_FOREGROUND_COLOR=0xffffff
CONFIG_DRM_PANIC_BACKGROUND_COLOR=0x0000aa
# CONFIG_DRM_PANIC_DEBUG is not set
CONFIG_DRM_PANIC_SCREEN="qr_code"
CONFIG_DRM_PANIC_SCREEN_QR_CODE=y
CONFIG_DRM_PANIC_SCREEN_QR_CODE_URL="https://panic.archlinux.org/panic_report#"
CONFIG_DRM_PANIC_SCREEN_QR_VERSION=40
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
CONFIG_DRM_CLIENT=y
@@ -11820,6 +11811,8 @@ CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# end of Scheduler Debugging
# CONFIG_DEBUG_PREEMPT is not set
#
# Lock Debugging (spinlocks, mutexes, etc...)
#
@@ -11918,6 +11911,7 @@ CONFIG_FPROBE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_OSNOISE_TRACER=y
@@ -12057,8 +12051,5 @@ CONFIG_MEMTEST=y
#
# Rust hacking
#
# CONFIG_RUST_DEBUG_ASSERTIONS is not set
CONFIG_RUST_OVERFLOW_CHECKS=y
# CONFIG_RUST_BUILD_ASSERT_ALLOW is not set
# end of Rust hacking
# end of Kernel hacking

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf5bb334bb5a77d7901e3b270aeec296448a9814d48ef1c3024270a1470bf6ca
size 3208217
oid sha256:2063c9f93584c34549700704948b9c5009f2bce433752b1a22fd5e911cc6cc8c
size 3234915

View File

@@ -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}