---
name: "PR_FUTEX_HASH_SET_SLOTS"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PR_FUTEX_HASH_SET_SLOTS"
---

# PR\_FUTEX\_HASH\_SET\_SLOTS(2const)

set the size of the private hash

## NAME

PR\_FUTEX\_HASH\_SET\_SLOTS - set the size of the private hash

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <linux/prctl.h>  /* Definition of PR_* constants */
#include <sys/prctl.h>
```

**int prctl(PR\_FUTEX\_HASH, PR\_FUTEX\_HASH\_SET\_SLOTS,**           **unsigned long** *size***, unsigned long** *flags***);**

## DESCRIPTION

Set the number of slots to use for the private hash.

- *size*

  Specify the size of private hash to allocate.

  - *0*

    Use the global hash. This is the behavior used before Linux 6.17.

  - *\>0*

    Specify the number of slots to allocate. The value must be power of two, and the lowest possible value is 2. The upper limit depends on the available memory in the system. Each slot requires 64 bytes of memory. Kernels compiled with *CONFIG\_PROVE\_LOCKING* will consume more than that.

- *flags*

  The argument must be 0.

## RETURN VALUE

On success, 0 is returned. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **EINVAL**

  An argument is invalid.

- **ENOMEM**

  Failed to allocate memory.

- **EBUSY**

  The global hash is in use and can not be changed.

## STANDARDS

Linux.

## HISTORY

Linux 6.17.

## SEE ALSO

[**prctl**(2)](/prctl/2.md), [**PR\_FUTEX\_HASH**(2const)](/PR_FUTEX_HASH/2const.md)
