diff --git a/PKGBUILD b/PKGBUILD index df29196..75f386c 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ # copied from Jan Alexander Steffens (heftig) pkgbase=linux-tom -pkgver=6.6.2.arch1 +pkgver=6.6.3.arch1 pkgrel=1 pkgdesc='Linux' url='https://github.com/archlinux/linux' diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index c9f16a5..2ddad85 100644 Binary files a/documentation/linux_configuration.pdf and b/documentation/linux_configuration.pdf differ diff --git a/documentation/linux_configuration.tex b/documentation/linux_configuration.tex index 1253b4a..895190c 100644 --- a/documentation/linux_configuration.tex +++ b/documentation/linux_configuration.tex @@ -533,7 +533,84 @@ Dies wird durch den Boot-Parameter "isolcpus=" gesteuert.\\ Sagen Sie Y für ja, wenn Sie unsicher sind. \subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}} +Read -- Copy -- Update (Lesen, Kopieren, Aktualisieren) +\subsubsection{Make expert-level adjustments to RCU configuration} +CONFIG\_RCU\_EXPERT [=y] \textbf{[Y]}\\ +Diese Option muss aktiviert werden, wenn Sie Anpassungen der RCU-Konfiguration +auf Expertenebene vornehmen möchten. +Standardmäßig können solche Anpassungen nicht vorgenommen werden, +was den oft vorteilhaften Nebeneffekt hat, dass "make oldconfig" Sie +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. +\subsubsection{Force selection of TASKS\_RCU} +CONFIG\_FORCE\_TASKS\_RCU [=n] \textbf{[N]}\\ +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. +\subsubsection{Force selection of Tasks Rude RCU} +CONFIG\_FORCE\_TASKS\_RUDE\_RCU [=n] \textbf{[N]}\\ +Diese Option erzwingt eine Task-basierte RCU-Implementierung, die nur +Kontextwechsel (einschließlich Preemption) und die Ausführung im +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. + +\subsubsection{Force selection of Tasks Trace RCU} +CONFIG\_FORCE\_TASKS\_TRACE\_RCU [=n] \textbf{[N]}\\ +Diese Option ermöglicht eine Task-basierte RCU-Implementierung, die +explizite rcu\_read\_lock\_trace()-Lesemarker verwendet und es ermöglicht, +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. + +\subsubsection{Tree-based hierarchical RCU fanout value} +CONFIG\_RCU\_FANOUT [=64] \textbf{[64]}\\ +Diese Option steuert den Fanout von hierarchischen Implementierungen von +RCU, so dass RCU auf Maschinen mit einer großen Anzahl von CPUs effizient +arbeiten kann. Dieser Wert muss mindestens die vierte Wurzel von NR\_CPUS +sein, wodurch NR\_CPUS wahnsinnig groß werden kann. Der Standardwert von +RCU\_FANOUT sollte für Produktionssysteme verwendet werden, aber wenn Sie +die RCU-Implementierung selbst einem Stresstest unterziehen, ermöglichen +kleine RCU\_FANOUT-Werte das Testen von Codepfaden für große Systeme auf +kleinen (kleineren) Systemen.\\ +Wählen Sie eine bestimmte Zahl, wenn Sie RCU selbst testen. +Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ +Symbol: RCU\_FANOUT [=64]\\ +Type : integer (Ganzzahl)\\ +Range : [2 64] + +\subsubsection{Tree-based hierarchical RCU leaf-level fanout value} +CONFIG\_RCU\_FANOUT\_LEAF [=16] \textbf{[16]}\\ +Diese Option steuert das Fanout auf Blattebene bei hierarchischen +Implementierungen von RCU und ermöglicht es, Cache-Misses gegen +Sperrkonflikte abzuwägen. Systeme, die ihre Scheduling-Clock-Interrupts +aus Gründen der Energieeffizienz synchronisieren, werden die +Standardeinstellung bevorzugen, da der kleinere Leaf-Level-Fanout die +Lock-Contention-Level akzeptabel niedrig hält. Sehr große Systeme +(Hunderte oder Tausende von CPUs) werden stattdessen diesen Wert auf den +maximal möglichen Wert setzen wollen, um die Anzahl der Cache-Misses zu +reduzieren, die während der Initialisierung der RCU-Grace-Periode auftreten. +Diese Systeme neigen dazu, CPU-gebunden zu laufen, und werden daher nicht +von synchronisierten Interrupts unterstützt, und neigen daher dazu, sie zu +verzerren, was den Sperrkonflikt so weit reduziert, dass große Fanouts auf +Blattebene gut funktionieren. Das heißt, wenn Sie den Fanout auf Blattebene +auf eine große Zahl setzen, wird dies wahrscheinlich zu problematischen +Sperrkonflikten auf den rcu\_node-Strukturen auf Blattebene führen, es sei +denn, Sie booten mit dem Kernelparameter skew\_tick.\\ +Wählen Sie eine bestimmte Zahl, wenn Sie die RCU selbst testen.\\ +Wählen Sie den maximal zulässigen Wert für große Systeme, aber bedenken Sie, +dass Sie möglicherweise auch den Kernel-Boot-Parameter skew\_tick setzen +müssen, um Konflikte bei den Sperren der rcu\_node-Strukturen zu vermeiden. +Nehmen Sie den Standardwert, wenn Sie unsicher sind. +Symbol: RCU\_FANOUT\_LEAF [=64]\\ +Type : integer (Ganzzahl)\\ +Range : [2 64] \end{document}