Recent changes (master)
The following changes since commit 0527b23f9112b59dc63f3b40a7f40d45c48ec60d:
t/aio-ring: updates/cleanups (2018-12-10 15:14:36 -0700)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to 702906e9e3e03e9836421d5e5b5eaae3cd99d398:
engines/libaio: remove features deprecated from old interface (2018-12-12 22:02:16 -0700)
----------------------------------------------------------------
Jens Axboe (10):
t/aio-ring: update to newer API
t/aio-ring: update to new io_setup2(2)
t/aio-ring: set nr_events after clear
ioengine: remove ancient alias for libaio
Add aioring engine
t/aio-ring: update for new API
aioring: hide it if archs don't define syscalls
aioring: check for arch support AFTER including the headers
aioring: remove qd > 1 restriction
engines/libaio: remove features deprecated from old interface
Makefile | 3 + arch/arch-x86_64.h | 4 + engines/aioring.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++ engines/libaio.c | 150 ++------------- ioengines.c | 2 +- options.c | 7 + t/aio-ring.c | 72 ++++--- 7 files changed, 621 insertions(+), 164 deletions(-) create mode 100644 engines/aioring.c
---
Diff of recent changes:
Makefile +3 -0
@@ -68,6 +68,9 @@ endif ifdef CONFIG_LIBAIO SOURCE += engines/libaio.c endif +ifdef CONFIG_LIBAIO + SOURCE += engines/aioring.c +endif ifdef CONFIG_RDMA SOURCE += engines/rdma.c endif
arch/arch-x86_64.h +4 -0
@@ -4,6 +4,9 @@#ifndef __NR_sys_io_setup2#define __NR_sys_io_setup2 335#endif +#ifndef __NR_sys_io_ring_enter +#define __NR_sys_io_ring_enter 336 +#endif static inline void do_cpuid (unsigned int *eax,unsigned int *ebx,unsigned int *ecx,unsigned int *edx)
@@ -41,6 +44,7 @@ static inline unsigned long long get_cpu_clock(void)#define ARCH_HAVE_FFZ #define ARCH_HAVE_SSE4_2 #define ARCH_HAVE_CPU_CLOCK +#define ARCH_HAVE_AIORING #define RDRAND_LONG ".byte 0x48,0x0f,0xc7,0xf0"#define RDSEED_LONG ".byte 0x48,0x0f,0xc7,0xf8"
engines/aioring.c new file +547 -0
547 lines not on this page · raw message
engines/libaio.c +16 -134
271 lines not on this page · raw message
ioengines.c +1 -1
@@ -131,7 +131,7 @@ static struct ioengine_ops *__load_ioengine(const char *name)/* * linux libaio has alias names, so convert to what we want */ -if (!strncmp (engine,"linuxaio" ,8 ) || !strncmp (engine,"aio" ,3 )) { +if (!strncmp (engine,"linuxaio" ,8 )) {dprint (FD_IO ,"converting ioengine name: %s -> libaio\n" , name);strcpy (engine,"libaio" ); }
options.c +7 -0
@@ -1773,6 +1773,13 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .help = "Linux native asynchronous IO", },#endif +#ifdef CONFIG_LIBAIO +#ifdef ARCH_HAVE_AIORING + { .ival = "aio-ring", + .help = "Linux native asynchronous IO", + }, +#endif +#endif #ifdef CONFIG_POSIXAIO { .ival = "posixaio", .help = "POSIX asynchronous IO",
t/aio-ring.c +43 -29
157 lines not on this page · raw message