Linux 6.6.2 documentation
This commit is contained in:
2
PKGBUILD
2
PKGBUILD
@@ -74,7 +74,7 @@ prepare() {
|
|||||||
echo "Setting config..."
|
echo "Setting config..."
|
||||||
cp ../config .config
|
cp ../config .config
|
||||||
make olddefconfig
|
make olddefconfig
|
||||||
# make menuconfig
|
make menuconfig
|
||||||
diff -u ../config .config || :
|
diff -u ../config .config || :
|
||||||
|
|
||||||
make -s kernelrelease > version
|
make -s kernelrelease > version
|
||||||
|
|||||||
Binary file not shown.
@@ -1,16 +1,23 @@
|
|||||||
%
|
%
|
||||||
% Thomas Kuschel 2023
|
% Thomas Kuschel 2023
|
||||||
\newcommand{\version}{V6.5}
|
\newcommand{\version}{V6.6}
|
||||||
\documentclass[10pt,a4paper]{article}
|
\documentclass[10pt,a4paper]{article}
|
||||||
%\documentclass[12pt,a4paper]{report}
|
%\documentclass[12pt,a4paper]{report}
|
||||||
\usepackage[a4paper,margin=25mm]{geometry}
|
\usepackage[a4paper,margin=25mm]{geometry}
|
||||||
\usepackage[ngerman]{babel} %Verwendung von \glqq \qrgg{}
|
\usepackage[ngerman]{babel} %Verwendung von \glqq \qrgg{}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
\setcounter{secnumdepth}{4}%numbering down to paragraphs
|
\setcounter{secnumdepth}{5}%numbering down to paragraphs, subparagraphs
|
||||||
%% \usepackage{ulem} %strike through with /sout{}
|
%% \usepackage{ulem} %strike through with /sout{}
|
||||||
% you have to install texlive-plaingeneric first :
|
% you have to install texlive-plaingeneric first :
|
||||||
\usepackage{ulem}
|
\usepackage{ulem}
|
||||||
|
|
||||||
|
% The following is to use subparagraph without intending:
|
||||||
|
\makeatletter
|
||||||
|
\renewcommand\subparagraph{%
|
||||||
|
\@startsection {subparagraph}{5}{\z@ }{3.25ex \@plus 1ex
|
||||||
|
\@minus .2ex}{-1em}{\normalfont \normalsize \bfseries }}%
|
||||||
|
\makeatother
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\section*{Linux Configuration \version}
|
\section*{Linux Configuration \version}
|
||||||
@@ -228,18 +235,16 @@ zu diagnostizierenden Interrupt-Problemen.
|
|||||||
\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}}
|
\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||||
\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}}
|
\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}}
|
||||||
Sie müssen aus den folgenden drei Möglichkeiten eine wählen:
|
Sie müssen aus den folgenden drei Möglichkeiten eine wählen:
|
||||||
\paragraph{Periodic timer ticks (constant rate, no dynticks)}
|
\paragraph{Periodic timer ticks (constant rate, no dynticks)} $~$ \\
|
||||||
CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\
|
CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\
|
||||||
Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft,
|
Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft,
|
||||||
auch wenn die CPU ihn nicht braucht.
|
auch wenn die CPU ihn nicht braucht.
|
||||||
\paragraph{Idle dynticks system (tickless idle)}
|
\paragraph{Idle dynticks system (tickless idle)} $~$ \\
|
||||||
% \\
|
|
||||||
CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\
|
CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\
|
||||||
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
||||||
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
||||||
Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.
|
Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.
|
||||||
\paragraph{Full dynticks system (tickless)}
|
\paragraph{Full dynticks system (tickless)} $~$ \\
|
||||||
% \\
|
|
||||||
CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\
|
CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\
|
||||||
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem):
|
||||||
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im
|
||||||
@@ -310,7 +315,7 @@ Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sol
|
|||||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_enable} \\
|
\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\_harden (optional)} \\
|
||||||
\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)}
|
\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)}
|
||||||
\paragraph{Permanently enable BPF JIT and remove BPF interpreter\\}
|
\paragraph{Permanently enable BPF JIT and remove BPF interpreter} $~$ \\
|
||||||
CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\
|
CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\
|
||||||
Aktiviert BPF JIT und entfernt den BPF-Interpreter um spekulative Ausführungen
|
Aktiviert BPF JIT und entfernt den BPF-Interpreter um spekulative Ausführungen
|
||||||
von BPF-Anweisungen durch den Interpreter zu verhindern.\\
|
von BPF-Anweisungen durch den Interpreter zu verhindern.\\
|
||||||
@@ -334,7 +339,8 @@ Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen erstellt,
|
|||||||
die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt
|
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
|
eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF-Programmen
|
||||||
und -Maps nützlich ist.
|
und -Maps nützlich ist.
|
||||||
\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{[]}\\
|
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[]}\\
|
||||||
Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen
|
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.
|
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.
|
||||||
@@ -397,7 +403,7 @@ koordinierten Auswahl von Aufgaben zwischen SMT-Geschwistern.
|
|||||||
Wenn diese Option aktiviert ist - siehe prctl
|
Wenn diese Option aktiviert ist - siehe prctl
|
||||||
(PR\_SCHED\_CORE)
|
(PR\_SCHED\_CORE)
|
||||||
- stellt die Aufgabenauswahl sicher, dass alle SMT-Geschwister
|
- stellt die Aufgabenauswahl sicher, dass alle SMT-Geschwister
|
||||||
eine Aufgabe aus der gleichen \"Kerngruppe\" ausführen und
|
eine Aufgabe aus der gleichen \glqq Kerngruppe\grqq{} ausführen und
|
||||||
den Leerlauf erzwingen, wenn keine passende Aufgabe gefunden
|
den Leerlauf erzwingen, wenn keine passende Aufgabe gefunden
|
||||||
wird.
|
wird.
|
||||||
Diese Funktion wird unter anderem verwendet:
|
Diese Funktion wird unter anderem verwendet:
|
||||||
@@ -410,4 +416,124 @@ bei Linux-Distributionen wahrscheinlich der Fall ist,
|
|||||||
sollte es keine messbaren Auswirkungen auf die Leistung
|
sollte es keine messbaren Auswirkungen auf die Leistung
|
||||||
haben.
|
haben.
|
||||||
|
|
||||||
|
\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}}
|
||||||
|
|
||||||
|
\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}}
|
||||||
|
\paragraph{Full dynticks CPU time accounting} $~$\\
|
||||||
|
CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=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
|
||||||
|
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.
|
||||||
|
|
||||||
|
\subsubsection{Fine granularity task level IRQ time accounting}
|
||||||
|
CONFIG\_IRQ\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\
|
||||||
|
Wählen Sie diese Option aus, um eine fein granulare Berechnung der
|
||||||
|
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.
|
||||||
|
|
||||||
|
\subsubsection{BSD Process Accounting}
|
||||||
|
CONFIG\_BSD\_PROCESS\_ACCT [=y] \textbf{[Y]}\\
|
||||||
|
Wenn Sie hier Y (für Ja) angeben, kann ein Programm auf Benutzerebene den Kernel
|
||||||
|
(über einen speziellen Systemaufruf) anweisen, Prozessabrechnungsinformationen
|
||||||
|
in eine Datei zu schreiben: Jedes Mal, wenn ein Prozess beendet wird, werden
|
||||||
|
Informationen über diesen Prozess vom Kernel an die Datei angehängt.
|
||||||
|
Die Informationen beinhalten Dinge wie die Erstellungszeit, den besitzenden
|
||||||
|
Benutzer, den Befehlsnamen, den Speicherverbrauch, das kontrollierende Terminal
|
||||||
|
usw. (die vollständige Liste kann in der acct-Struktur in
|
||||||
|
\textless{}file:include/linux/acct.h\textgreater{} gefunden werden).
|
||||||
|
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.
|
||||||
|
|
||||||
|
\paragraph{BSD Process Accounting version 3 file format} $~$\\
|
||||||
|
CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\
|
||||||
|
Wenn Sie hier Y (für Ja) angeben, werden die Prozessabrechnungsinformationen
|
||||||
|
in ein neues Dateiformat geschrieben, das auch die Prozess-IDs der einzelnen
|
||||||
|
Prozesse und ihrer Eltern protokolliert. Beachten Sie, dass dieses
|
||||||
|
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
|
||||||
|
\textless{}http://www.gnu.org/software/acct/\textgreater{} verfügbar.
|
||||||
|
|
||||||
|
\subsubsection{Export task/process statistics through netlink}
|
||||||
|
CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\
|
||||||
|
Export ausgewählter Statistiken für Aufgaben/Prozesse über die generische
|
||||||
|
Netlink-Schnittstelle. Im Gegensatz zur BSD-Prozessabrechnung sind die
|
||||||
|
Statistiken während der Lebensdauer von Aufgaben/Prozessen als Antwort auf
|
||||||
|
Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in
|
||||||
|
den Benutzerbereich gesendet.\\
|
||||||
|
Sagen Sie N, wenn Sie unsicher sind.
|
||||||
|
|
||||||
|
\paragraph{Enable per-task delay accounting} $~$\\
|
||||||
|
CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\
|
||||||
|
Sammeln Sie Informationen über die Zeit, die eine Task für das Warten auf
|
||||||
|
Systemressourcen wie CPU, synchrone Block-E/A-Abwicklung und Auslagerung
|
||||||
|
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.
|
||||||
|
|
||||||
|
\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.
|
||||||
|
|
||||||
|
\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.
|
||||||
|
|
||||||
|
\subsubsection{Pressure stall information tracking}
|
||||||
|
CONFIG\_PSI [=y] \textbf{[Y]}\\
|
||||||
|
Sammeln Sie Metriken, die anzeigen, wie überlastet die CPU-, Speicher-
|
||||||
|
und IO-Kapazität im System sind.\\
|
||||||
|
|
||||||
|
Wenn Sie hier Y angeben, erstellt der Kernel /proc/pressure/ mit die
|
||||||
|
Druckstatistikdateien cpu, memory und io. Diese zeigen den Anteil der
|
||||||
|
Walltime an, in dem einige oder alle Tasks im System aufgrund der
|
||||||
|
Beanspruchung der jeweiligen Ressource verzögert sind.
|
||||||
|
|
||||||
|
In Kerneln mit cgroup-Unterstützung verfügen cgroups (nur cgroup2) über
|
||||||
|
cpu.pressure-, 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.
|
||||||
|
|
||||||
|
\paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\
|
||||||
|
CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\
|
||||||
|
Wenn diese Option gesetzt ist, ist die Verfolgung von Druckstauinformationen
|
||||||
|
standardmäßig deaktiviert, kann aber durch die Übergabe von psi=1 auf der
|
||||||
|
Kernel-Befehlszeile beim Booten aktiviert werden.\\
|
||||||
|
|
||||||
|
Diese Funktion fügt dem Task-Wakeup- und Sleep-Pfad des Schedulers etwas Code hinzu.
|
||||||
|
Der Overhead ist zu gering, um gängige planungsintensive Arbeitslasten in der Praxis
|
||||||
|
|
||||||
|
zu beeinträchtigen (z. B. Webserver, Memcache), aber es zeigt sich in künstlichen
|
||||||
|
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.
|
||||||
|
|
||||||
|
\subsection{CPU isolation}
|
||||||
|
CONFIG\_CPU\_ISOLATION [=y] \textbf{[Y]}\\
|
||||||
|
Stellen Sie sicher, dass CPUs, auf denen kritische Aufgaben laufen,
|
||||||
|
nicht durch irgendwelche "Störquellen" wie ungebundene Workqueues, Timers,
|
||||||
|
kthreads usw. gestört werden.\\
|
||||||
|
Ungebundene Aufgaben werden auf Housekeeping-CPUs verlagert.
|
||||||
|
Dies wird durch den Boot-Parameter "isolcpus=" gesteuert.\\
|
||||||
|
Sagen Sie Y für ja, wenn Sie unsicher sind.
|
||||||
|
|
||||||
|
\subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|||||||
Reference in New Issue
Block a user