^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) This directory includes a few programs that demonstrate how to use io_uring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) in an application. The examples are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) io_uring-cp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) A very basic io_uring implementation of cp(1). It takes two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) arguments, copies the first argument to the second. This example
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) is part of liburing, and hence uses the simplified liburing API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) for setting up an io_uring instance, submitting IO, completing IO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) etc. The support functions in queue.c and setup.c are straight
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) out of liburing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) io_uring-bench
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Benchmark program that does random reads on a number of files. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) app demonstrates the various features of io_uring, like fixed files,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) fixed buffers, and polled IO. There are options in the program to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) control which features to use. Arguments is the file (or files) that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) io_uring-bench should operate on. This uses the raw io_uring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) liburing can be cloned with git here:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) git://git.kernel.dk/liburing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) and contains a number of unit tests as well for testing io_uring. It also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) comes with man pages for the three system calls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) Fio includes an io_uring engine, you can clone fio here:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) git://git.kernel.dk/fio