X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os%2Fos-linux.h;h=081f5d6c632b57ae322ff93e8d39d5c985b14e9e;hb=f681d0bac9c42e5d6bcb3601d2f3cfaa1c2cefb4;hp=9f547fffe635ad0f652b1baa6a579032bdacc801;hpb=fddc6604f91ebf76d9090741f9d4f5a4d33be0c6;p=fio.git diff --git a/os/os-linux.h b/os/os-linux.h index 9f547fff..081f5d6c 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -34,7 +34,6 @@ #define FIO_HAVE_RAWBIND #define FIO_HAVE_BLKTRACE #define FIO_HAVE_STRSEP -#define FIO_HAVE_FALLOCATE #define FIO_HAVE_POSIXAIO_FSYNC #define FIO_HAVE_PSHARED_MUTEX #define FIO_HAVE_CL_SIZE @@ -45,15 +44,24 @@ #define FIO_HAVE_BINJECT #define FIO_HAVE_CLOCK_MONOTONIC #define FIO_HAVE_GETTID +#define FIO_USE_GENERIC_INIT_RANDOM_STATE +#define FIO_HAVE_E4_ENG /* * Can only enable this for newer glibcs, or the header and defines are * missing */ #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 6 +#define FIO_HAVE_FALLOCATE +#endif +#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 8 #define FIO_HAVE_LINUX_FALLOCATE #endif +#ifdef FIO_HAVE_LINUX_FALLOCATE +#define FIO_HAVE_FALLOC_ENG +#endif + #ifdef SYNC_FILE_RANGE_WAIT_BEFORE #define FIO_HAVE_SYNC_FILE_RANGE #endif @@ -108,8 +116,31 @@ 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) +enum { + IOPRIO_CLASS_NONE, + IOPRIO_CLASS_RT, + IOPRIO_CLASS_BE, + IOPRIO_CLASS_IDLE, +}; + +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP, + IOPRIO_WHO_USER, +}; + +#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); } @@ -183,22 +214,6 @@ static inline long umem_add(unsigned long *uptr, unsigned long inc) } #endif /* FIO_HAVE_SYSLET */ -enum { - IOPRIO_CLASS_NONE, - IOPRIO_CLASS_RT, - IOPRIO_CLASS_BE, - IOPRIO_CLASS_IDLE, -}; - -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP, - IOPRIO_WHO_USER, -}; - -#define IOPRIO_BITS 16 -#define IOPRIO_CLASS_SHIFT 13 - #ifndef BLKGETSIZE64 #define BLKGETSIZE64 _IOR(0x12,114,size_t) #endif