From: Jens Axboe Date: Thu, 15 Oct 2020 02:11:56 +0000 (-0600) Subject: Disallow offload IO mode for engines marked with FIO_NO_OFFLOAD X-Git-Tag: fio-3.24~19 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=8bfe330eb42739d503d35d0b7d96f98c5c544204;p=fio.git Disallow offload IO mode for engines marked with FIO_NO_OFFLOAD Previous commits did this for all async engines, this can potentially break existing job files. There are only certain cases where it fails, for now at least mark io_uring as one of those. Reported-by: Jeff Furlong Signed-off-by: Jens Axboe --- diff --git a/engines/io_uring.c b/engines/io_uring.c index 69f48859..b997c8d8 100644 --- a/engines/io_uring.c +++ b/engines/io_uring.c @@ -806,7 +806,7 @@ static int fio_ioring_close_file(struct thread_data *td, struct fio_file *f) static struct ioengine_ops ioengine = { .name = "io_uring", .version = FIO_IOOPS_VERSION, - .flags = FIO_ASYNCIO_SYNC_TRIM, + .flags = FIO_ASYNCIO_SYNC_TRIM | FIO_NO_OFFLOAD, .init = fio_ioring_init, .post_init = fio_ioring_post_init, .io_u_init = fio_ioring_io_u_init, diff --git a/ioengines.c b/ioengines.c index d3be8026..3e43ef2f 100644 --- a/ioengines.c +++ b/ioengines.c @@ -45,7 +45,7 @@ static bool check_engine_ops(struct thread_data *td, struct ioengine_ops *ops) * async engines aren't reliable with offload */ if ((td->o.io_submit_mode == IO_MODE_OFFLOAD) && - !(ops->flags & FIO_FAKEIO)) { + (ops->flags & FIO_NO_OFFLOAD)) { log_err("%s: can't be used with offloaded submit. Use a sync " "engine\n", ops->name); return true; diff --git a/ioengines.h b/ioengines.h index 54dadba2..fbe52fa4 100644 --- a/ioengines.h +++ b/ioengines.h @@ -77,7 +77,8 @@ enum fio_ioengine_flags { FIO_NOSTATS = 1 << 12, /* don't do IO stats */ FIO_NOFILEHASH = 1 << 13, /* doesn't hash the files for lookup later. */ FIO_ASYNCIO_SYNC_TRIM - = 1 << 14 /* io engine has async ->queue except for trim */ + = 1 << 14, /* io engine has async ->queue except for trim */ + FIO_NO_OFFLOAD = 1 << 15, /* no async offload */ }; /*