Skip to content

Commit

Permalink
Disallow offload IO mode for engines marked with FIO_NO_OFFLOAD
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
axboe committed Oct 15, 2020
1 parent 8cf503c commit 8bfe330
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion engines/io_uring.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion ioengines.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion ioengines.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
};

/*
Expand Down

0 comments on commit 8bfe330

Please sign in to comment.