diff options
Diffstat (limited to 'bench/util.c')
| -rw-r--r-- | bench/util.c | 39 |
1 files changed, 39 insertions, 0 deletions
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 +} |
