/Linux-v6.1/tools/io_uring/ |
D | Makefile | 6 all: io_uring-cp io_uring-bench 10 io_uring-bench: syscall.o io_uring-bench.o 13 io_uring-cp: setup.o syscall.o queue.o 16 $(RM) io_uring-cp io_uring-bench *.o
|
D | README | 1 This directory includes a few programs that demonstrate how to use io_uring 4 io_uring-cp 5 A very basic io_uring implementation of cp(1). It takes two 8 for setting up an io_uring instance, submitting IO, completing IO, 12 io_uring-bench 14 app demonstrates the various features of io_uring, like fixed files, 17 io_uring-bench should operate on. This uses the raw io_uring 24 and contains a number of unit tests as well for testing io_uring. It also 27 Fio includes an io_uring engine, you can clone fio here:
|
D | liburing.h | 46 struct io_uring { struct 64 extern int io_uring_queue_init(unsigned entries, struct io_uring *ring, argument 67 struct io_uring *ring); 68 extern void io_uring_queue_exit(struct io_uring *ring); 69 extern int io_uring_peek_cqe(struct io_uring *ring, 71 extern int io_uring_wait_cqe(struct io_uring *ring, 73 extern int io_uring_submit(struct io_uring *ring); 74 extern struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring); 80 static inline void io_uring_cqe_seen(struct io_uring *ring, in io_uring_cqe_seen()
|
D | queue.c | 11 static int __io_uring_get_cqe(struct io_uring *ring, in __io_uring_get_cqe() 49 int io_uring_peek_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr) in io_uring_peek_cqe() 58 int io_uring_wait_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr) in io_uring_wait_cqe() 68 int io_uring_submit(struct io_uring *ring) in io_uring_submit() 141 struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring) in io_uring_get_sqe()
|
D | io_uring-cp.c | 34 static int setup_context(unsigned entries, struct io_uring *ring) in setup_context() 69 static void queue_prepped(struct io_uring *ring, struct io_data *data) in queue_prepped() 84 static int queue_read(struct io_uring *ring, off_t size, off_t offset) in queue_read() 111 static void queue_write(struct io_uring *ring, struct io_data *data) in queue_write() 123 static int copy_file(struct io_uring *ring, off_t insize) in copy_file() 252 struct io_uring ring; in main()
|
D | setup.c | 64 int io_uring_queue_mmap(int fd, struct io_uring_params *p, struct io_uring *ring) in io_uring_queue_mmap() 79 int io_uring_queue_init(unsigned entries, struct io_uring *ring, unsigned flags) in io_uring_queue_init() 98 void io_uring_queue_exit(struct io_uring *ring) in io_uring_queue_exit()
|
/Linux-v6.1/io_uring/ |
D | tctx.c | 49 struct io_uring_task *tctx = tsk->io_uring; in __io_uring_free() 57 tsk->io_uring = NULL; in __io_uring_free() 88 task->io_uring = tctx; in io_uring_alloc_task_context() 96 struct io_uring_task *tctx = current->io_uring; in __io_uring_add_tctx_node() 105 tctx = current->io_uring; in __io_uring_add_tctx_node() 148 current->io_uring->last = ctx; in __io_uring_add_tctx_node_from_submit() 157 struct io_uring_task *tctx = current->io_uring; in io_uring_del_tctx_node() 200 struct io_uring_task *tctx = current->io_uring; in io_uring_unreg_ringfd() 261 tctx = current->io_uring; in io_ringfd_register() 307 struct io_uring_task *tctx = current->io_uring; in io_ringfd_unregister()
|
D | cancel.c | 87 WARN_ON_ONCE(!io_wq_current_is_worker() && tctx != current->io_uring); in io_try_cancel() 152 struct io_uring_task *tctx = node->task->io_uring; in __io_async_cancel() 174 struct io_uring_task *tctx = req->task->io_uring; in io_async_cancel() 265 ret = __io_sync_cancel(current->io_uring, &cd, sc.fd); in io_sync_cancel() 289 ret = __io_sync_cancel(current->io_uring, &cd, sc.fd); in io_sync_cancel()
|
D | tctx.h | 27 struct io_uring_task *tctx = current->io_uring; in io_uring_add_tctx_node()
|
D | Makefile | 5 obj-$(CONFIG_IO_URING) += io_uring.o xattr.o nop.o fs.o splice.o \
|
D | io_uring.c | 369 atomic_inc(&req->task->io_uring->inflight_tracked); in io_req_track_inflight() 453 struct io_uring_task *tctx = req->task->io_uring; in io_queue_iowq() 661 struct io_uring_task *tctx = task->io_uring; in __io_put_task() 680 struct io_uring_task *tctx = task->io_uring; in io_uring_drop_tctx_refs() 1117 if (unlikely(atomic_read(&req->task->io_uring->in_idle))) { in io_req_local_work_add() 1132 struct io_uring_task *tctx = req->task->io_uring; in __io_req_task_work_add() 1702 struct io_uring_task *tctx = req->task->io_uring; in io_clean_op() 2297 current->io_uring->cached_refs += left; in io_submit_sqes() 2703 struct io_uring_task *tctx = current->io_uring; in io_tctx_exit_cb() 2753 if (tsk && tsk->io_uring && tsk->io_uring->io_wq) in io_ring_exit_work() [all …]
|
D | io_uring.h | 332 task->io_uring->cached_refs += nr; in io_put_task() 339 struct io_uring_task *tctx = current->io_uring; in io_get_task_refs()
|
D | timeout.c | 282 ret = io_try_cancel(req->task->io_uring, &cd, issue_flags); in io_req_task_link_timeout()
|
/Linux-v6.1/include/linux/ |
D | io_uring.h | 52 if (current->io_uring) { in io_uring_files_cancel() 59 if (current->io_uring) in io_uring_task_cancel() 64 if (tsk->io_uring) in io_uring_free()
|
D | io_uring_types.h | 71 struct io_uring { struct 92 struct io_uring sq, cq; argument
|
D | sched.h | 1097 struct io_uring_task *io_uring; member
|
/Linux-v6.1/tools/testing/selftests/net/ |
D | io_uring_zerocopy_tx.c | 107 struct io_uring { struct 157 static int io_uring_register_buffers(struct io_uring *ring, in io_uring_register_buffers() 215 static int io_uring_queue_init(unsigned entries, struct io_uring *ring, in io_uring_queue_init() 236 static int io_uring_submit(struct io_uring *ring) in io_uring_submit() 291 static struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring) in io_uring_get_sqe() 300 static int io_uring_wait_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr) in io_uring_wait_cqe() 323 static inline void io_uring_cqe_seen(struct io_uring *ring) in io_uring_cqe_seen() 363 struct io_uring ring; in do_tx()
|
/Linux-v6.1/Documentation/block/ |
D | ublk.rst | 47 ``io_uring`` passthrough command; that is why ublk is also one io_uring based 48 block driver. It has been observed that using io_uring passthrough command can 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). 186 ublk server needs to create per-queue IO pthread & io_uring for handling IO 187 commands via io_uring passthrough. The per-queue IO pthread 200 The following IO commands are communicated via io_uring passthrough command, 216 the IO notification via io_uring.
|
/Linux-v6.1/ |
D | Kbuild | 91 obj-$(CONFIG_IO_URING) += io_uring/
|
/Linux-v6.1/init/ |
D | init_task.c | 119 .io_uring = NULL,
|
D | Kconfig | 1692 This option enables support for the io_uring interface, enabling
|
/Linux-v6.1/scripts/ |
D | Makefile.package | 33 include init io_uring ipc kernel lib mm net rust \
|
/Linux-v6.1/include/trace/events/ |
D | io_uring.h | 3 #define TRACE_SYSTEM io_uring
|
/Linux-v6.1/drivers/block/ |
D | Kconfig | 406 io_uring based userspace block driver. Together with ublk server, ublk 412 can be used in IO path for replacing io_uring cmd, which will become
|
/Linux-v6.1/kernel/ |
D | fork.c | 2158 p->io_uring = NULL; in copy_process()
|