V6.12, ADD Extensible Scheduling Class
This commit is contained in:
@@ -330,7 +330,6 @@ Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Imp
|
||||
MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten
|
||||
sollten, antworten Sie mit N.
|
||||
\subsection{Preemption Model (Preemptible Kernel (Low-Latency Desktop)) \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
Eingestellt auf : Low-Latency, d.\,h. nur kleine Verzögerungen beim Modell des Multitaskings.
|
||||
Es gibt drei Einstellungen:
|
||||
\subsubsection{No Forced Preemption (Server)}
|
||||
@@ -342,14 +341,14 @@ 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.
|
||||
\subsubsection{Voluntary Kernel Preemption (Desktop)}
|
||||
CONFIG\_PREEMPT\_VOLUNTARY [=n] \textbf{[N]}\\
|
||||
CONFIG\_PREEMPT\_VOLUNTARY \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\
|
||||
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.
|
||||
\subsubsection{Preemptible Kernel (Low-Latency Desktop)}
|
||||
CONFIG\_PREEMPT [=y] \textbf{[Y]}\\
|
||||
CONFIG\_PREEMPT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
|
||||
Bei dieser Einstellung wird die Latenz des Kernels weiter erniedrigt indem der gesamte Code des Kernels
|
||||
(keine kritischen, geschützten Bereiche) unterbrechbar gemacht wird. Dadurch wird ein reibungsloses
|
||||
Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast.
|
||||
@@ -396,7 +395,50 @@ SCHED\_CORE ist standardmäßig deaktiviert. Wenn es aktiviert und unbenutzt ist
|
||||
bei Linux-Distributionen wahrscheinlich der Fall ist,
|
||||
sollte es keine messbaren Auswirkungen auf die Leistung
|
||||
haben.
|
||||
% 1.21 Extensible Scheduling Class (since 6.11)
|
||||
\subsection{Extensible Scheduling Class {\tiny since 6.12}}
|
||||
CONFIG\_SCHED\_CLASS\_EXT [=y] \textbf{[Y]}\\
|
||||
Diese Option aktiviert eine neue Scheduler-Klasse sched\_ext (SCX), die es ermöglicht,
|
||||
dass Scheduling-Richtlinien
|
||||
als BPF-Programme implementiert werden können, um Folgendes zu erreichen:
|
||||
\begin{itemize}
|
||||
\item [-] Einfaches Experimentieren und Erforschen:
|
||||
Ermöglicht die schnelle Iteration neuer Zeitplanungsrichtlinien.
|
||||
\item [-] Anpassungsfähigkeit: Erstellung von anwendungsspezifischen Schedulern,
|
||||
die Richtlinien implementieren, die für allgemeine Scheduler nicht anwendbar sind.
|
||||
\item [-] Schnelle Scheduler-Implementierungen: Unterbrechungsfreie Auslagerung von Planungsrichtlinien
|
||||
in Produktionsumgebungen.
|
||||
\end{itemize}
|
||||
sched\_ext nutzt die BPF-Funktion struct\_ops,
|
||||
um eine Struktur zu definieren,
|
||||
die Funktionsaufrufe und
|
||||
Flags an BPF-Programme exportiert, die Zeitplanungsrichtlinien implementieren möchten.\\
|
||||
Die struct\_ops-Struktur, die von
|
||||
sched\_ext exportierte Struktur heißt struct sched\_ext\_ops und ist konzeptionell ähnlich wie
|
||||
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]
|
||||
\begin{small}
|
||||
\textit{
|
||||
This option enables a new scheduler class sched\_ext (SCX), which
|
||||
allows scheduling policies to be implemented as BPF programs to
|
||||
achieve the following:
|
||||
\begin{itemize}
|
||||
\item[-] Ease of experimentation and exploration: Enabling rapid
|
||||
iteration of new scheduling policies.
|
||||
\item[-] Customization: Building application-specific schedulers which
|
||||
implement policies that are not applicable to general-purpose schedulers.
|
||||
\item[-] Rapid scheduler deployments: Non-disruptive swap outs of
|
||||
scheduling policies in production environments.
|
||||
\end{itemize}
|
||||
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.}
|
||||
\end{small}
|
||||
\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}}
|
||||
|
||||
Reference in New Issue
Block a user