1
0
Fork 0
alistair23-linux/tools/io_uring
Douglas Gilbert 8cc5eb809a tools/io_uring: fix compile breakage
[ Upstream commit 72f04da48a ]

It would seem none of the kernel continuous integration does this:
    $ cd tools/io_uring
    $ make

Otherwise it may have noticed:
   cc -Wall -Wextra -g -D_GNU_SOURCE   -c -o io_uring-bench.o
	 io_uring-bench.c
io_uring-bench.c:133:12: error: static declaration of ‘gettid’
	 follows non-static declaration
  133 | static int gettid(void)
      |            ^~~~~~
In file included from /usr/include/unistd.h:1170,
                 from io_uring-bench.c:27:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:16: note:
	 previous declaration of ‘gettid’ was here
   34 | extern __pid_t gettid (void) __THROW;
      |                ^~~~~~
make: *** [<builtin>: io_uring-bench.o] Error 1

The problem on Ubuntu 20.04 (with lk 5.9.0-rc5) is that unistd.h
already defines gettid(). So prefix the local definition with
"lk_".

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-07 08:01:27 +02:00
..
Makefile tools/io_uring: fix Makefile for pthread library link 2019-05-23 10:25:26 -06:00
README io_uring: add a few test tools 2019-03-06 13:00:16 -07:00
barrier.h io_uring: add a few test tools 2019-03-06 13:00:16 -07:00
io_uring-bench.c tools/io_uring: fix compile breakage 2020-10-07 08:01:27 +02:00
io_uring-cp.c tools/io_uring: sync with liburing 2019-05-23 10:25:26 -06:00
liburing.h tools/io_uring: sync with liburing 2019-05-23 10:25:26 -06:00
queue.c tools/io_uring: sync with liburing 2019-05-23 10:25:26 -06:00
setup.c tools/io_uring: sync with liburing 2019-05-23 10:25:26 -06:00
syscall.c tools/io_uring: sync with liburing 2019-05-23 10:25:26 -06:00

README

This directory includes a few programs that demonstrate how to use io_uring
in an application. The examples are:

io_uring-cp
	A very basic io_uring implementation of cp(1). It takes two
	arguments, copies the first argument to the second. This example
	is part of liburing, and hence uses the simplified liburing API
	for setting up an io_uring instance, submitting IO, completing IO,
	etc. The support functions in queue.c and setup.c are straight
	out of liburing.

io_uring-bench
	Benchmark program that does random reads on a number of files. This
	app demonstrates the various features of io_uring, like fixed files,
	fixed buffers, and polled IO. There are options in the program to
	control which features to use. Arguments is the file (or files) that
	io_uring-bench should operate on. This uses the raw io_uring
	interface.

liburing can be cloned with git here:

	git://git.kernel.dk/liburing

and contains a number of unit tests as well for testing io_uring. It also
comes with man pages for the three system calls.

Fio includes an io_uring engine, you can clone fio here:

	git://git.kernel.dk/fio