| /linux-6.15/io_uring/ |
| H A D | tctx.c | 49 struct io_uring_task *tctx = tsk->io_uring; in __io_uring_free() 68 tsk->io_uring = NULL; in __io_uring_free() 100 task->io_uring = tctx; in io_uring_alloc_task_context() 108 struct io_uring_task *tctx = current->io_uring; in __io_uring_add_tctx_node() 117 tctx = current->io_uring; in __io_uring_add_tctx_node() 160 current->io_uring->last = ctx; in __io_uring_add_tctx_node_from_submit() 169 struct io_uring_task *tctx = current->io_uring; in io_uring_del_tctx_node() 212 struct io_uring_task *tctx = current->io_uring; in io_uring_unreg_ringfd() 282 tctx = current->io_uring; in io_ringfd_register() 328 struct io_uring_task *tctx = current->io_uring; in io_ringfd_unregister()
|
| H A D | cancel.c | 109 WARN_ON_ONCE(!io_wq_current_is_worker() && tctx != current->io_uring); in io_try_cancel() 187 ret = io_async_cancel_one(node->task->io_uring, cd); in __io_async_cancel() 293 ret = __io_sync_cancel(current->io_uring, &cd, sc.fd); in io_sync_cancel() 317 ret = __io_sync_cancel(current->io_uring, &cd, sc.fd); in io_sync_cancel()
|
| H A D | Kconfig | 3 # io_uring configuration
|
| H A D | sqpoll.c | 226 struct io_uring_task *tctx = current->io_uring; in io_sq_tw() 244 struct io_uring_task *tctx = current->io_uring; in io_sq_tw_pending() 271 if (!current->io_uring) { in io_sq_thread() 521 ret = io_wq_cpu_affinity(sqd->thread->io_uring, mask); in io_sqpoll_wq_cpu_affinity()
|
| H A D | tctx.h | 27 struct io_uring_task *tctx = current->io_uring; in io_uring_add_tctx_node()
|
| H A D | Makefile | 9 obj-$(CONFIG_IO_URING) += io_uring.o opdef.o kbuf.o rsrc.o notif.o \
|
| H A D | io_uring.h | 367 if (current->io_uring) { in io_run_task_work() 371 tctx_task_work_run(current->io_uring, UINT_MAX, &count); in io_run_task_work() 424 struct io_uring_task *tctx = current->io_uring; in io_get_task_refs()
|
| H A D | zcrx.h | 31 struct io_uring *rq_ring;
|
| H A D | register.c | 210 ret = io_wq_cpu_affinity(current->io_uring, new_mask); in __io_register_iowq_aff() 286 tctx = sqd->thread->io_uring; in io_register_iowq_max_workers() 289 tctx = current->io_uring; in io_register_iowq_max_workers() 323 tctx = node->task->io_uring; in io_register_iowq_max_workers() 857 struct io_uring_task *tctx = current->io_uring; in io_uring_register_get_file()
|
| H A D | zcrx.c | 165 off = sizeof(struct io_uring); in io_allocate_rbuf_ring() 176 ifq->rq_ring = (struct io_uring *)ptr; in io_allocate_rbuf_ring() 419 reg.offsets.rqes = sizeof(struct io_uring); in io_register_zcrx_ifq() 420 reg.offsets.head = offsetof(struct io_uring, head); in io_register_zcrx_ifq() 421 reg.offsets.tail = offsetof(struct io_uring, tail); in io_register_zcrx_ifq()
|
| H A D | io_uring.c | 694 struct io_uring_task *tctx = task->io_uring; in io_uring_drop_tctx_refs() 2057 req->tctx = current->io_uring; in io_init_req() 2349 current->io_uring->cached_refs += left; in io_submit_sqes() 2388 struct io_uring_task *tctx = current->io_uring; in current_pending_io() 2843 struct io_uring_task *tctx = current->io_uring; in io_tctx_exit_cb() 2905 if (tsk && tsk->io_uring && tsk->io_uring->io_wq) in io_ring_exit_work() 2906 io_wq_cancel_cb(tsk->io_uring->io_wq, in io_ring_exit_work() 3143 if (!current->io_uring) in io_uring_cancel_generic() 3167 current->io_uring, in io_uring_cancel_generic() 3174 current->io_uring, in io_uring_cancel_generic() [all …]
|
| H A D | notif.c | 118 notif->tctx = current->io_uring; in io_alloc_notif()
|
| /linux-6.15/include/linux/ |
| H A D | io_uring.h | 18 if (current->io_uring) in io_uring_files_cancel() 23 if (current->io_uring) in io_uring_task_cancel() 28 if (tsk->io_uring) in io_uring_free()
|
| H A D | io_uring_types.h | 121 struct io_uring { struct 142 struct io_uring sq, cq; argument
|
| /linux-6.15/tools/include/io_uring/ |
| H A D | mini_liburing.h | 54 struct io_uring { struct 130 struct io_uring *ring, in io_uring_queue_init() 152 static inline struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring) in io_uring_get_sqe() 161 static inline int io_uring_wait_cqe(struct io_uring *ring, in io_uring_wait_cqe() 185 static inline int io_uring_submit(struct io_uring *ring) in io_uring_submit() 220 static inline void io_uring_queue_exit(struct io_uring *ring) in io_uring_queue_exit() 247 static inline int io_uring_register_buffers(struct io_uring *ring, in io_uring_register_buffers() 278 static inline void io_uring_cqe_seen(struct io_uring *ring) in io_uring_cqe_seen()
|
| /linux-6.15/Documentation/networking/ |
| H A D | iou-zcrx.rst | 4 io_uring zero copy Rx 10 io_uring zero copy Rx (ZC Rx) is a feature that removes kernel-to-user copy on 20 Several NIC HW features are required for io_uring ZC Rx to work. For now the 36 configured for io_uring ZC Rx. 42 copy flows away from queues that are configured for io_uring ZC Rx. 68 Setup io_uring 71 This section describes the low level io_uring kernel API. Please refer to 74 Create an io_uring instance with the following required setup flags::
|
| /linux-6.15/tools/testing/selftests/drivers/net/hw/ |
| H A D | iou-zcrx.c | 121 static void setup_zcrx(struct io_uring *ring) in setup_zcrx() 181 static void add_accept(struct io_uring *ring, int sockfd) in add_accept() 191 static void add_recvzc(struct io_uring *ring, int sockfd) in add_recvzc() 202 static void add_recvzc_oneshot(struct io_uring *ring, int sockfd, size_t len) in add_recvzc_oneshot() 213 static void process_accept(struct io_uring *ring, struct io_uring_cqe *cqe) in process_accept() 227 static void process_recvzc(struct io_uring *ring, struct io_uring_cqe *cqe) in process_recvzc() 273 static void server_loop(struct io_uring *ring) in server_loop() 297 struct io_uring ring; in run_server()
|
| /linux-6.15/Documentation/block/ |
| H A D | ublk.rst | 47 ``io_uring`` passthrough command; that is why ublk is also one io_uring based 51 done by io_uring, but also the preferred IO handling in ublk server is io_uring 76 # do anything. all IOs are handled by io_uring 119 pthread & io_uring for handling ublk IO), this command is sent to the 127 io_uring). 245 commands via io_uring passthrough. The per-queue IO pthread 274 the IO notification via io_uring. 315 ublk zero copy relies on io_uring's fixed kernel buffer, which provides 320 buffer into io_uring buffer table, then ublk server can submit io_uring 324 `io_buffer_unregister_bvec()`. Any io_uring operation which supports this [all …]
|
| /linux-6.15/ |
| H A D | Kconfig | 34 source "io_uring/Kconfig"
|
| H A D | Kbuild | 91 obj-$(CONFIG_IO_URING) += io_uring/
|
| /linux-6.15/tools/testing/vsock/ |
| H A D | vsock_uring_test.c | 64 struct io_uring ring; in vsock_io_uring_client() 117 struct io_uring ring; in vsock_io_uring_server()
|
| /linux-6.15/tools/testing/selftests/ublk/ |
| H A D | kublk.h | 166 struct io_uring ring; 185 struct io_uring ring;
|
| /linux-6.15/init/ |
| H A D | init_task.c | 129 .io_uring = NULL,
|
| /linux-6.15/tools/testing/selftests/net/ |
| H A D | io_uring_zerocopy_tx.c | 99 struct io_uring ring; in do_tx()
|
| /linux-6.15/tools/testing/selftests/mm/ |
| H A D | gup_longterm.c | 197 struct io_uring ring; in do_test()
|