diff options
author | David CARLIER <devnexen@gmail.com> | 2020-10-25 12:14:05 +0000 |
---|---|---|
committer | Oran Agra <oran@redislabs.com> | 2020-10-27 09:12:01 +0200 |
commit | 5aa0fef2ce0a0dcf3a11d1ccb386b5b447a90778 (patch) | |
tree | 67dc945c29cc6d1151f45c0c0fd0b8f1482ee9ae | |
parent | 3988e32f41d75444f0bca6200608bc15f7e27112 (diff) | |
download | redis-5aa0fef2ce0a0dcf3a11d1ccb386b5b447a90778.tar.gz |
cpu affinity: DragonFlyBSD support (#7956)
(cherry picked from commit 27f4c212f377dfbe1a60fb96635ae16bc405b959)
-rw-r--r-- | src/config.h | 2 | ||||
-rw-r--r-- | src/setcpuaffinity.c | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/config.h b/src/config.h index 320837b7e..b9c68f38b 100644 --- a/src/config.h +++ b/src/config.h @@ -253,7 +253,7 @@ int pthread_setname_np(const char *name); #endif /* Check if we can use setcpuaffinity(). */ -#if (defined __linux || defined __NetBSD__ || defined __FreeBSD__) +#if (defined __linux || defined __NetBSD__ || defined __FreeBSD__ || defined __DragonFly__) #define USE_SETCPUAFFINITY void setcpuaffinity(const char *cpulist); #endif diff --git a/src/setcpuaffinity.c b/src/setcpuaffinity.c index 13594113c..77b162103 100644 --- a/src/setcpuaffinity.c +++ b/src/setcpuaffinity.c @@ -36,6 +36,10 @@ #include <sys/param.h> #include <sys/cpuset.h> #endif +#ifdef __DragonFly__ +#include <pthread.h> +#include <pthread_np.h> +#endif #ifdef __NetBSD__ #include <pthread.h> #include <sched.h> @@ -72,7 +76,7 @@ void setcpuaffinity(const char *cpulist) { #ifdef __linux__ cpu_set_t cpuset; #endif -#ifdef __FreeBSD__ +#if defined (__FreeBSD__) || defined(__DragonFly__) cpuset_t cpuset; #endif #ifdef __NetBSD__ @@ -139,6 +143,9 @@ void setcpuaffinity(const char *cpulist) { #ifdef __FreeBSD__ cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, sizeof(cpuset), &cpuset); #endif +#ifdef __DragonFly__ + pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset); +#endif #ifdef __NetBSD__ pthread_setaffinity_np(pthread_self(), cpuset_size(cpuset), cpuset); cpuset_destroy(cpuset); |