---
name: "io_uring_mlock_size"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_mlock_size"
---

# io\_uring\_mlock\_size(3)

get required memlock size for a ring

## NAME

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

## SYNOPSIS

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

**ssize\_t io\_uring\_mlock\_size(unsigned** *entries***, unsigned** *flags***);**

## DESCRIPTION

The [**io\_uring\_mlock\_size**(3)](/io_uring_mlock_size/3.md) function returns the required **RLIMIT\_MEMLOCK** memory size for an io\_uring ring with *entries* entries and the specified setup *flags*.

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.

For more control over the ring parameters, use [**io\_uring\_mlock\_size\_params**(3)](/io_uring_mlock_size_params/3.md) instead.

## 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

[**io\_uring\_mlock\_size\_params**(3)](/io_uring_mlock_size_params/3.md), **io\_uring\_memory\_size**(3), [**io\_uring\_queue\_init**(3)](/io_uring_queue_init/3.md), [**getrlimit**(2)](/getrlimit/2.md)
