From: Tomohiro Kusumi Date: Tue, 19 Jul 2016 16:33:43 +0000 (+0900) Subject: Make I/O priority option generic for non-Linux environment [1/2] X-Git-Tag: fio-2.13~10 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=1767bd34cdc1a7607a8460b8173d08d7954adf99 Make I/O priority option generic for non-Linux environment [1/2] There is a kernel that supports I/O priority with a syscall similar to Linux (e.g. DragonFlyBSD's ioprio_set(2) which apparently seems to have been inspired by ioprio_set(2) in Linux kernel), however min/max value of the priority may differ, so use OS specific macros instead of hardcoded values that are designed to work on Linux. This commit adds IOPRIO_MIN|MAX_PRIO and IOPRIO_MIN|MAX_PRIO_CLASS to Linux (incl Android), but no functional changes. Signed-off-by: Tomohiro Kusumi Signed-off-by: Jens Axboe --- diff --git a/options.c b/options.c index 51998239..d2a029d1 100644 --- a/options.c +++ b/options.c @@ -3012,8 +3012,8 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .type = FIO_OPT_INT, .off1 = td_var_offset(ioprio), .help = "Set job IO priority value", - .minval = 0, - .maxval = 7, + .minval = IOPRIO_MIN_PRIO, + .maxval = IOPRIO_MAX_PRIO, .interval = 1, .category = FIO_OPT_C_GENERAL, .group = FIO_OPT_G_CRED, @@ -3024,8 +3024,8 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .type = FIO_OPT_INT, .off1 = td_var_offset(ioprio_class), .help = "Set job IO priority class", - .minval = 0, - .maxval = 3, + .minval = IOPRIO_MIN_PRIO_CLASS, + .maxval = IOPRIO_MAX_PRIO_CLASS, .interval = 1, .category = FIO_OPT_C_GENERAL, .group = FIO_OPT_G_CRED, diff --git a/os/os-android.h b/os/os-android.h index 1699539c..9e3a3d2a 100644 --- a/os/os-android.h +++ b/os/os-android.h @@ -140,6 +140,12 @@ enum { #define IOPRIO_BITS 16 #define IOPRIO_CLASS_SHIFT 13 +#define IOPRIO_MIN_PRIO 0 /* highest priority */ +#define IOPRIO_MAX_PRIO 7 /* lowest priority */ + +#define IOPRIO_MIN_PRIO_CLASS 0 +#define IOPRIO_MAX_PRIO_CLASS 3 + static inline int ioprio_set(int which, int who, int ioprio_class, int ioprio) { /* diff --git a/os/os-linux.h b/os/os-linux.h index b36d33c9..a410497c 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -96,6 +96,12 @@ enum { #define IOPRIO_BITS 16 #define IOPRIO_CLASS_SHIFT 13 +#define IOPRIO_MIN_PRIO 0 /* highest priority */ +#define IOPRIO_MAX_PRIO 7 /* lowest priority */ + +#define IOPRIO_MIN_PRIO_CLASS 0 +#define IOPRIO_MAX_PRIO_CLASS 3 + static inline int ioprio_set(int which, int who, int ioprio_class, int ioprio) { /*