/linux-6.3-rc2/tools/io_uring/ |
A 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
|
A 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:
|
A 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()
|
A 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()
|
A 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()
|
A 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-6.3-rc2/io_uring/ |
A 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()
|
A 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()
|
A D | tctx.h | 27 struct io_uring_task *tctx = current->io_uring; in io_uring_add_tctx_node()
|
A D | Makefile | 5 obj-$(CONFIG_IO_URING) += io_uring.o xattr.o nop.o fs.o splice.o \
|
A D | io_uring.c | 456 struct io_uring_task *tctx = req->task->io_uring; in io_queue_iowq() 719 struct io_uring_task *tctx = task->io_uring; in io_put_task_remote() 730 task->io_uring->cached_refs += nr; in io_put_task_local() 753 struct io_uring_task *tctx = task->io_uring; in io_uring_drop_tctx_refs() 2462 current->io_uring->cached_refs += left; in io_submit_sqes() 2935 struct io_uring_task *tctx = current->io_uring; in io_tctx_exit_cb() 2991 if (tsk && tsk->io_uring && tsk->io_uring->io_wq) in io_ring_exit_work() 2992 io_wq_cancel_cb(tsk->io_uring->io_wq, in io_ring_exit_work() 3208 if (!current->io_uring) in io_uring_cancel_generic() 4083 tctx = sqd->thread->io_uring; in io_register_iowq_max_workers() [all …]
|
A D | io_uring.h | 334 struct io_uring_task *tctx = current->io_uring; in io_get_task_refs()
|
A D | timeout.c | 282 ret = io_try_cancel(req->task->io_uring, &cd, issue_flags); in io_req_task_link_timeout()
|
/linux-6.3-rc2/include/linux/ |
A D | io_uring.h | 53 if (current->io_uring) { in io_uring_files_cancel() 60 if (current->io_uring) in io_uring_task_cancel() 65 if (tsk->io_uring) in io_uring_free()
|
A D | io_uring_types.h | 71 struct io_uring { struct 92 struct io_uring sq, cq; argument
|
A D | sched.h | 1091 struct io_uring_task *io_uring; member
|
/linux-6.3-rc2/tools/testing/selftests/net/ |
A 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-6.3-rc2/Documentation/block/ |
A 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). 232 ublk server needs to create per-queue IO pthread & io_uring for handling IO 233 commands via io_uring passthrough. The per-queue IO pthread 246 The following IO commands are communicated via io_uring passthrough command, 262 the IO notification via io_uring.
|
/linux-6.3-rc2/ |
A D | Kbuild | 91 obj-$(CONFIG_IO_URING) += io_uring/
|
/linux-6.3-rc2/init/ |
A D | init_task.c | 119 .io_uring = NULL,
|
/linux-6.3-rc2/scripts/ |
A D | Makefile.package | 10 include init io_uring ipc kernel lib mm net rust \
|
/linux-6.3-rc2/drivers/block/ |
A D | Kconfig | 377 io_uring based userspace block driver. Together with ublk server, ublk 383 can be used in IO path for replacing io_uring cmd, which will become
|
/linux-6.3-rc2/include/trace/events/ |
A D | io_uring.h | 3 #define TRACE_SYSTEM io_uring
|
/linux-6.3-rc2/tools/testing/selftests/mm/ |
A D | cow.c | 412 struct io_uring ring; in do_test_iouring()
|
/linux-6.3-rc2/kernel/ |
A D | fork.c | 2174 p->io_uring = NULL; in copy_process()
|