io\_uring\_mlock\_size\_params(3) liburing Manual io\_uring\_mlock\_size\_params(3)

# [NAME](#NAME)

io\_uring\_mlock\_size\_params - get required memlock size for a ring with params

# [SYNOPSIS](#SYNOPSIS)

```
#include <liburing.h>
```

```
ssize_t io_uring_mlock_size_params(unsigned entries, struct io_uring_params *p);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_mlock\_size\_params**(3)](/man/os/liburing/io_uring_mlock_size_params.3) function returns the required **RLIMIT\_MEMLOCK** memory size for an io\_uring ring with *entries* entries and the parameters specified in *p*.

On newer kernels (5.12+), io\_uring no longer requires any memlock memory and this function will return 0. On older kernels (5.11 and prior), this returns the required memory so that the caller can ensure that enough **RLIMIT\_MEMLOCK** space is available before setting up a ring.

This function provides more control than [**io\_uring\_mlock\_size**(3)](/man/os/liburing/io_uring_mlock_size.3) by allowing the caller to specify full ring parameters including CQ size via *p-&gt;cq\_entries* when **IORING\_SETUP\_CQSIZE** is set in *p-&gt;flags*.

# [RETURN VALUE](#RETURN_VALUE)

Returns the required memlock size in bytes on success, 0 if no memlock is needed, or a negative errno value on error.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_mlock\_size**(3)](/man/os/liburing/io_uring_mlock_size.3), [**io\_uring\_memory\_size\_params**(3)](/man/os/liburing/io_uring_memory_size_params.3), [**io\_uring\_queue\_init\_params**(3)](/man/os/liburing/io_uring_queue_init_params.3), [**getrlimit**(2)](/man/os/liburing/getrlimit.2)

January 18, 2025 liburing-2.4

---

Document: io_uring_mlock_size_params(3) from liburing 2.15-r4 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
