#ifndef _INCLUDE_API_H
#define _INCLUDE_API_H
-#define _GNU_SOURCE
-#include "config.h"
-
/*
* common.h: Common Linux kernel-isms.
*
#include <urcu/compiler.h>
#include <urcu/arch.h>
-#include "cpuset.h"
/*
* Machine parameters.
typedef pthread_t thread_id_t;
-#define NR_THREADS 128
+#define NR_THREADS 4096
#define __THREAD_ID_MAP_EMPTY ((thread_id_t) 0)
#define __THREAD_ID_MAP_WAITING ((thread_id_t) 1)
CPU_ZERO(&mask);
CPU_SET(cpu, &mask);
-#if SCHED_SETAFFINITY_ARGS == 2
- sched_setaffinity(0, &mask);
-#else
sched_setaffinity(0, sizeof(mask), &mask);
-#endif
#endif /* HAVE_SCHED_SETAFFINITY */
}
* timekeeping -- very crude -- should use MONOTONIC...
*/
+static inline
long long get_microseconds(void)
{
struct timeval tv;
struct { \
__typeof__(type) v \
__attribute__((__aligned__(CAA_CACHE_LINE_SIZE))); \
- } __per_thread_##name[NR_THREADS];
+ } __per_thread_##name[NR_THREADS]
#define DECLARE_PER_THREAD(type, name) extern DEFINE_PER_THREAD(type, name)
#define per_thread(name, thread) __per_thread_##name[thread].v