Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


PR_FUTEX_HASH(2const) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |STANDARDS |HISTORY |SEE ALSO |COLOPHON

PR_FUTEX_HASH(2const)PR_FUTEX_HASH(2const)

NAME        top

       PR_FUTEX_HASH - configure the private futex hash

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <linux/prctl.h>/* Definition ofPR_*constants */#include <sys/prctl.h>int prctl(PR_FUTEX_HASH, unsigned longop, ...);

DESCRIPTION        top

       Configure the attributes for the underlying hash used by thefutex(2) family of operations.  The Linux kernel uses a hash to       distribute the unrelatedfutex(2) requests to different data       structures in order to reduce the lock contention.  Unrelated       requests are requests which are not related to one another because       they use a different futex word.  The data structure holds the in-       kernel representation of the operation and keeps track of the       current users which are enqueued and wait for a wake up.  It also       provides synchronisation of waiters against wakers.  The size of       the global hash is determined at boot time and is based on the       number of CPUs in the system.  Due to hash collision, two       unrelatedfutex(2) requests can share the same hash bucket.  This       in turn can lead to delays of thefutex(2) operation due to lock       contention while accessing the data structure.  These delays can       be problematic on a real-time system since random processes can       share in-kernel locks and it is not deterministic which process       will be involved.       Linux 6.16 implements a process-wide private hash which is used by       allfutex(2) operations that specify theFUTEX_PRIVATE_FLAGoption       as part of the operation.  Without any configuration the kernel       will allocate 16 hash slots once the first thread has been       created.  If the process continues to create threads, the kernel       will try to resize the private hash based on the number of threads       and available CPUs in the system.  The kernel will only increase       the size and will make sure it does not exceed the size of the       global hash.       The user can configure the size of the private hash which will       also disable the automatic resize provided by the kernel.       The value inop is one of the options below.PR_FUTEX_HASH_GET_IMMUTABLEPR_FUTEX_HASH_GET_SLOTSPR_FUTEX_HASH_SET_SLOTS

RETURN VALUE        top

       On success, these calls return a nonnegative value.  On error, -1       is returned, anderrno is set to indicate the error.

STANDARDS        top

       Linux.

HISTORY        top

       Linux 6.16.

SEE ALSO        top

prctl(2),futex(2),PR_FUTEX_HASH_GET_IMMUTABLE(2const),PR_FUTEX_HASH_GET_SLOTS(2const),PR_FUTEX_HASH_SET_SLOTS(2const)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-06-11PR_FUTEX_HASH(2const)

Pages that refer to this page:prctl(2)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp