Lines Matching +full:use +full:- +full:kernel
1 .\" Copyright (C) 2019 Jens Axboe <axboe@kernel.dk>
5 .\" SPDX-License-Identifier: LGPL-2.0-or-later
7 .TH io_uring_setup 2 2019-01-29 "Linux" "Linux Programmer's Manual"
9 io_uring_setup \- setup a context for performing asynchronous I/O
26 completion queues are shared between userspace and the kernel, which
30 is used by the application to pass options to the kernel, and by the
31 kernel to convey information about the ring buffers.
61 Perform busy-waiting for an I/O completion, as opposed to getting
64 this to work. Busy-waiting provides lower latency, but may consume
71 It is illegal to mix and match polled and non-polled I/O on an io_uring
84 When this flag is specified, a kernel thread is created to perform
87 into the kernel. By using the submission queue to fill in new
92 If the kernel thread is idle for more than
102 to wake the kernel thread. If I/O is kept busy, the kernel thread
103 will never sleep. An application making use of this feature will need
112 * has been written. It's important to use memory load acquire
114 * and the kernel might not agree on the consistency of the
117 unsigned flags = atomic_load_relaxed(sq_ring->flags);
142 Before version 5.11 of the Linux kernel, to successfully use this feature, the
152 In version 5.11 and later, it is no longer necessary to register files to use
153 this feature. 5.11 also allows using this as non-root, if the user has the
177 and may be rounded up to the next power-of-two.
230 manner. For a lot of use cases, this is overkill and can cause reduced
231 performance from both the inter-processor interrupt used to do this, the
232 kernel/user transition, the needless interruption of the tasks userspace
235 at any kernel/user transition. The exception are setups where the application
250 and enter the kernel to process them, and applications can do the same. This
253 safe to use even when applications rely on a peek style operation on the CQ
257 If set, io_uring will use 128-byte SQEs rather than the normal 64-byte sized
264 If set, io_uring will use 32-byte CQEs rather than the normal 16-byte sized
271 A hint to the kernel that only a single task (or thread) will submit requests, which is
277 The kernel enforces this rule, failing requests with
278 .B -EEXIST
308 By default, io_uring allocates kernel memory that callers must subsequently
310 If this flag is set, io_uring instead uses caller-allocated buffers;
311 .I p->cq_off.user_addr
313 .I p->sq_off.user_addr
327 file descriptor. The caller will need to use
359 is filled in by the kernel, which specifies various features supported
360 by current kernel version.
367 calls down from three to two. Available since kernel 5.4.
371 A dropped event can only occur if the kernel runs out of memory, in which case
374 full, the kernel stores the event internally until such a time that the CQ ring
377 .B -EBUSY
380 submit again. If the kernel has no free memory to store the event internally
382 Available since kernel 5.5. Additionally
385 .B -EBADR
386 the next time it would otherwise sleep waiting for completions (since kernel 5.19).
391 async offload has been consumed when the kernel has consumed the SQE. Available
392 since kernel 5.5.
398 .B -1
412 It'll use (and update) the current file position. This obviously comes
416 kernel 5.6.
430 and specify the personality to use in the sqe. Available since kernel 5.6.
439 resources doing so as they are not blocking a thread. Available since kernel
445 command accepts the full 32-bit range of epoll based flags. Most notably
447 which allows exclusive (waking single waiters) behavior. Available since kernel
453 feature no longer requires the use of fixed files. Any normal file descriptor
455 kernel 5.11.
481 is set in the flags for the enter system call. Available since kernel 5.11.
485 Previous kernels used kernel threads that assumed the identity of the
487 looks more like regular process threads instead. Available since kernel
493 buffers can be updated in-place, whereas before the full set would have to
494 be unregistered first. Available since kernel 5.13.
502 kernel 5.17.
511 execution of that SQE. If this flag is set, then the kernel will defer
513 kernel 5.17.
520 Available since kernel 6.3.
538 are filled in by the kernel, and provide the information necessary to
603 field is used by the kernel to communicate state information to the
617 is incremented by the kernel when the I/O has been successfully
673 may happen asynchronously within the kernel, so it is not guaranteed that
698 The resv array contains non-zero data, p.flags contains an unsupported
716 The per-process limit on the number of open file descriptors has been
723 The system-wide limit on the total number of open files has been
727 Insufficient kernel resources are available.
735 .I /proc/sys/kernel/io_uring_disabled
739 .IR /proc/sys/kernel/io_uring_group .