#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"
+#ifdef ARCH_HAVE_AIORING
/*
* aioring engine
*
ld->sq_ring = fio_memalign(page_size, aioring_sq_size(td), false);
memset(ld->sq_ring, 0, aioring_sq_size(td));
ld->sq_ring->nr_events = td->o.iodepth;
- ld->sq_ring->iocbs = (u64) ld->iocbs;
+ ld->sq_ring->iocbs = (u64) (uintptr_t) ld->iocbs;
ld->cq_ring = fio_memalign(page_size, aioring_cq_size(td), false);
memset(ld->cq_ring, 0, aioring_cq_size(td));
static void fio_init fio_aioring_register(void)
{
-#ifdef __NR_sys_io_setup2
-#ifdef __NR_sys_io_ring_enter
register_ioengine(&ioengine);
-#endif
-#endif
}
static void fio_exit fio_aioring_unregister(void)
{
-#ifdef __NR_sys_io_setup2
-#ifdef __NR_sys_io_ring_enter
unregister_ioengine(&ioengine);
-#endif
-#endif
}
+#endif
},
#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",