At least an attempt to document the futex attached mode extension. Signed-off-by: Thomas Gleixner --- man2/futex.2 | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) --- a/man2/futex.2 +++ b/man2/futex.2 @@ -767,6 +767,40 @@ operations correspond to and .BR FUTEX_WAKE_BITSET operations where the bit masks are all ones. + +.\" +.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.\" +.TP +.BR FUTEX_PREALLOC_HASH " (since Linux ?.?.?)" +This operation preallocates the per process private hash with a hash size +provided by the +.IR val +argument. + +This operation tells the kernel to preallocate the per process private hash +with a given hash size. The size is rounded up to the next power of two and +limited internally in the kernel according to the sys control setting. + +The per process private hash is allocated once and cannot be resized. The +allocation either happens by this op code or automatically when the first real +futex operation takes place. + +If the hash is allocated then subsequent calls with this opcode return the +currently active hash size. + +If the returned size value is 0 then the global hash is used instead of the +process private hash. This can happen on UP machines where the private hashing +is disabled and in case of memory allocation failure. + +The +.IR uaddr , +.IR timeout , +.IR uaddr2 +and +.I val3 +arguments are ignored. + .\" .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" .\" @@ -1334,6 +1368,12 @@ the futex word at Returns 0 if the caller was successfully requeued to the futex for the futex word at .IR uaddr2 . +.TP +.B FUTEX_PREALLOC_HASH +Returns the size of the allocated hash, i.e. the number of hash slots. If the +size value is 0 then the global hash is used instead of the process private +hash. This can happen on UP machines where the private hashing is disabled and +in case of memory allocation failure. .\" .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" .\"