X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os%2Fos-linux.h;h=869a25d8ee5d86c684762d91c4f7a4496f2b5d7f;hp=acc5a202aa80fc611bb11ed0bfa7421eaeaece6b;hb=95820b6e6c92025df8d89c0bf39b174e53137c41;hpb=f2a2ce0eedb44eaa8689e4cbfa77c79b1751b216 diff --git a/os/os-linux.h b/os/os-linux.h index acc5a202..869a25d8 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -35,7 +35,6 @@ #define FIO_HAVE_TRIM #define FIO_HAVE_BINJECT #define FIO_HAVE_GETTID -#define FIO_HAVE_SCHED_IDLE #define FIO_USE_GENERIC_INIT_RANDOM_STATE #ifdef MAP_HUGETLB @@ -76,18 +75,6 @@ static inline int fio_cpuset_exit(os_cpu_mask_t *mask) #define FIO_MAX_CPUS CPU_SETSIZE -static inline int ioprio_set(int which, int who, int ioprio) -{ - return syscall(__NR_ioprio_set, which, who, ioprio); -} - -static inline int gettid(void) -{ - return syscall(__NR_gettid); -} - -#define SPLICE_DEF_SIZE (64*1024) - enum { IOPRIO_CLASS_NONE, IOPRIO_CLASS_RT, @@ -104,6 +91,25 @@ enum { #define IOPRIO_BITS 16 #define IOPRIO_CLASS_SHIFT 13 +static inline int ioprio_set(int which, int who, int ioprio_class, int ioprio) +{ + /* + * If no class is set, assume BE + */ + if (!ioprio_class) + ioprio_class = IOPRIO_CLASS_BE; + + ioprio |= ioprio_class << IOPRIO_CLASS_SHIFT; + return syscall(__NR_ioprio_set, which, who, ioprio); +} + +static inline int gettid(void) +{ + return syscall(__NR_gettid); +} + +#define SPLICE_DEF_SIZE (64*1024) + #ifndef BLKGETSIZE64 #define BLKGETSIZE64 _IOR(0x12,114,size_t) #endif @@ -247,10 +253,12 @@ static inline int os_trim(int fd, unsigned long long start, return errno; } +#ifdef CONFIG_SCHED_IDLE static inline int fio_set_sched_idle(void) { struct sched_param p = { .sched_priority = 0, }; return sched_setscheduler(gettid(), SCHED_IDLE, &p); } +#endif #endif