X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os%2Fos-linux.h;h=01140e0d1ba0009942ec1913125324576c329de6;hp=1cd8272d5241750c67107536b2a0a1268236e7c0;hb=c36d16f5a0b9e3d505c9933bbbdccdb519ca4faf;hpb=0fe2187702d5d65e2b0f47e23824f41572eb4446 diff --git a/os/os-linux.h b/os/os-linux.h index 1cd8272d..01140e0d 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,8 @@ #define FIO_HAVE_POSIXAIO_FSYNC #define FIO_HAVE_PSHARED_MUTEX #define FIO_HAVE_CL_SIZE +#define FIO_HAVE_CGROUPS +#define FIO_HAVE_FDATASYNC #define OS_MAP_ANON MAP_ANONYMOUS @@ -55,13 +58,13 @@ typedef struct drand48_data os_random_state_t; * the affinity helpers to work. */ #ifndef GLIBC_2_3_2 -#define fio_setaffinity(td) \ - sched_setaffinity((td)->pid, sizeof((td)->o.cpumask), &(td)->o.cpumask) +#define fio_setaffinity(pid, cpumask) \ + sched_setaffinity((pid), sizeof(cpumask), &(cpumask)) #define fio_getaffinity(pid, ptr) \ sched_getaffinity((pid), sizeof(cpu_set_t), (ptr)) #else -#define fio_setaffinity(td) \ - sched_setaffinity((td)->pid, &(td)->o.cpumask) +#define fio_setaffinity(pid, cpumask) \ + sched_setaffinity((pid), &(cpumask)) #define fio_getaffinity(pid, ptr) \ sched_getaffinity((pid), (ptr)) #endif @@ -250,6 +253,10 @@ static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev) #define FIO_O_NOATIME 0 #endif +#ifdef MADV_REMOVE +#define FIO_MADV_FREE MADV_REMOVE +#endif + #define CACHE_LINE_FILE \ "/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size" @@ -263,10 +270,13 @@ static inline int arch_cache_line_size(void) return -1; ret = read(fd, size, sizeof(size)); + + close(fd); + if (ret <= 0) return -1; - - return atoi(size); + else + return atoi(size); } #endif