File: io_uring_mlock_size_params.3

package info (click to toggle)
liburing 2.14-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,448 kB
  • sloc: ansic: 59,512; sh: 816; makefile: 603; cpp: 32
file content (48 lines) | stat: -rw-r--r-- 1,395 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.\" Copyright (C) 2025 Jens Axboe <axboe@kernel.dk>
.\"
.\" SPDX-License-Identifier: LGPL-2.0-or-later
.\"
.TH io_uring_mlock_size_params 3 "January 18, 2025" "liburing-2.4" "liburing Manual"
.SH NAME
io_uring_mlock_size_params \- get required memlock size for a ring with params
.SH SYNOPSIS
.nf
.B #include <liburing.h>
.PP
.BI "ssize_t io_uring_mlock_size_params(unsigned " entries ", struct io_uring_params *" p ");"
.fi
.SH DESCRIPTION
.PP
The
.BR io_uring_mlock_size_params (3)
function returns the required
.B RLIMIT_MEMLOCK
memory size for an io_uring ring with
.I entries
entries and the parameters specified in
.IR 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
.B RLIMIT_MEMLOCK
space is available before setting up a ring.

This function provides more control than
.BR io_uring_mlock_size (3)
by allowing the caller to specify full ring parameters including CQ size
via
.I p->cq_entries
when
.B IORING_SETUP_CQSIZE
is set in
.IR p->flags .

.SH RETURN VALUE
Returns the required memlock size in bytes on success, 0 if no memlock
is needed, or a negative errno value on error.
.SH SEE ALSO
.BR io_uring_mlock_size (3),
.BR io_uring_memory_size_params (3),
.BR io_uring_queue_init_params (3),
.BR getrlimit (2)