PR_FUTEX_HASH(2const)

BEZEICHNUNG
PR_FUTEX_HASH - Konfiguriert den privaten Futex-Hash

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <linux/prctl.h>  /* Definition der PR_*-Konstanten */
#include <sys/prctl.h>

int prctl(PR_FUTEX_HASH, unsigned long akt, …);

BESCHREIBUNG
Konfiguriert die Attribute für den zugrundeliegenden Hash, der von der futex(2)-Familie der Aktionen verwandt wird. Der Linux-Kernel verwendet einen Hash, um die unzusammenhängenden futex(2)-Anfragen an verschiedene Datenstrukturen zu verteilen, um den Zugangskonflikt für Sperren zu reduzieren. Unzusammenhängende Anfragen sind Anfragen, die untereinander keinen Bezug haben, da sie ein verschiedenes Futex-Wort benutzen. Die Datenstrukturen halten die Kernel-interne Darstellung der Aktion und verfolgen die aktuellen Benutzer nach, die in der Warteschlage sind und auf ein Aufwachen warten. Sie stellt auch eine Synchronisation der Wartenden gegenüber den Aufwachern dar. Die Größe des globalen Hashes wird zum Systemstartzeitpunkt bestimmt und basiert auf der Anzahl der CPUs in dem System. Aufgrund von Hash-Kollisionen können sich zwei unzusammenhängende futex(2)-Anfragen den gleichen Hash-Wert teilen. Dies kann wiederum zu Verzögerung bei der futex(2)-Aktion aufgrund von Zugangskonflikten beim Zugriff auf die Datenstruktur führen. Diese Verzögerungen können auf einem Echtzeitsystem problematisch sein, da zufällige Prozesse sich die gleichen Kernel-internen Sperren teilen können und es nicht deterministisch ist, welcher Prozess involviert ist.

Linux 6.17 implementiert einen Prozess-weiten privaten Hash, der von allen futex(2)-Aktionen verwandt wird, die die Option FUTEX_PRIVATE_FLAG als Teil der Aktion festlegen. Ohne irgendwelche Konfiguration wird der Kernel 16 Hash-Positionen reservieren, sobald der erste Thread erstellt wurde. Falls der Prozess mit dem Erstellen von Threads fortfährt, wird der Kernel versuchen, die Größe des privaten Hashs basierend auf der Anzahl der Threads und der im System verfügbaren CPUs zu verändern. Der Kernel wird die Größe nur erhöhen und wird sicherstellen, das er nicht die Größe des globalen Hashs überschreitet.

Der Benutzer kann die Größe des privaten Hashes konfigurieren. Dies wird auch die vom Kernel bereitgestellte automatische Größenänderung deaktivieren.

Der Wert von akt ist einer der nachfolgenden Optionen.

PR_FUTEX_HASH_GET_SLOTS
PR_FUTEX_HASH_SET_SLOTS

RÜCKGABEWERT
Im Erfolgsfall liefern diese Aufrufe einen nichtnegativen Wert zurück. Im Fehlerfall wird -1 zurückgeliefert und errno gesetzt, um den Fehler anzuzeigen.

STANDARDS
Linux.

GESCHICHTE
Linux 6.17.

SIEHE AUCH
prctl(2), futex(2), PR_FUTEX_HASH_GET_SLOTS(2const), PR_FUTEX_HASH_SET_SLOTS(2const)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.