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 <jeff.furlong@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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,
* 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;
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 */
};
/*