On 7/19/23 7:31?PM, Damien Le Moal wrote: > diff --git a/engines/io_uring.c b/engines/io_uring.c > index f30a3c00..d55af6bc 100644 > --- a/engines/io_uring.c > +++ b/engines/io_uring.c > @@ -157,6 +157,21 @@ static struct fio_option options[] = { > .category = FIO_OPT_C_ENGINE, > .group = FIO_OPT_G_IOURING, > }, > + { > + .name = "cmdprio_hint", > + .lname = "Asynchronous I/O priority hint", > + .type = FIO_OPT_INT, > + .off1 = offsetof(struct ioring_options, > + cmdprio_options.hint[DDIR_READ]), > + .off2 = offsetof(struct ioring_options, > + cmdprio_options.hint[DDIR_WRITE]), > + .help = "Set asynchronous IO priority hint", > + .minval = IOPRIO_MIN_PRIO_HINT, > + .maxval = IOPRIO_MAX_PRIO_HINT, > + .interval = 1, > + .category = FIO_OPT_C_ENGINE, > + .group = FIO_OPT_G_IOURING, > + }, > { > .name = "cmdprio", > .lname = "Asynchronous I/O priority level", > @@ -195,6 +210,12 @@ static struct fio_option options[] = { > .type = FIO_OPT_UNSUPPORTED, > .help = "Your platform does not support I/O priority classes", > }, > + { > + .name = "cmdprio_hint", > + .lname = "Asynchronous I/O priority hint", > + .type = FIO_OPT_UNSUPPORTED, > + .help = "Your platform does not support I/O priority classes", > + }, > { > .name = "cmdprio", > .lname = "Asynchronous I/O priority level", Since neither this nor libaio actually do anything with these values, why isn't this just a generic option? You could flag the two engines where it actually works with an engine flag, and check if it's set and we don't have that flag and error out in the generic code. -- Jens Axboe