From 58cbdbd892c9a83369e3e46aa9700cc7df98a17b Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 24 Jul 2016 16:42:17 +0200 Subject: Clean up bench/util.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- bench/util.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 bench/util.c (limited to 'bench/util.c') diff --git a/bench/util.c b/bench/util.c new file mode 100644 index 0000000..d11239d --- /dev/null +++ b/bench/util.c @@ -0,0 +1,39 @@ +#define COMPILING_UTIL_C +#include "util.h" + + +char timebuf[512]; +unsigned long long int freq; + + +void +benchmark_init(void) +{ +#if defined(__linux__) && defined(USE_RDTSC) + cpu_set_t cpuset; + FILE *f; + char *line = 0; + size_t size = 0; + char path[PATH_MAX]; + CPU_ZERO(&cpuset); + CPU_SET(USE_CPU, &cpuset); + sched_setaffinity(getpid(), sizeof(cpuset), &cpuset); + sprintf(path, "/sys/devices/system/cpu/cpu%i/cpufreq/cpuinfo_max_freq", USE_CPU); + f = fopen(path, "r"); + if (getline(&line, &size, f) < 0) + abort(); + fclose(f); + freq = strtoull(line, 0, 10); + free(line); + +#elif defined(__linux__) + cpu_set_t cpuset; + CPU_ZERO(&cpuset); + CPU_SET(USE_CPU, &cpuset); + sched_setaffinity(getpid(), sizeof(cpuset), &cpuset); + +#else + fprintf(stderr, "WARNING: Don't know how to set CPU affinity.\n"); + +#endif +} -- cgit v1.2.3-70-g09d2