aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/odp_linux.c')
-rw-r--r--platform/linux-generic/odp_linux.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/platform/linux-generic/odp_linux.c b/platform/linux-generic/odp_linux.c
index 6e2b448..7e853c7 100644
--- a/platform/linux-generic/odp_linux.c
+++ b/platform/linux-generic/odp_linux.c
@@ -22,6 +22,11 @@
#include <odp_debug.h>
+#define NO_HZ_FULL_ISOL /*
+ * don't use odp cpuset.
+ * enable this for odp isolation mode
+ */
+
typedef struct {
int thr_id;
void *(*start_routine) (void *);
@@ -49,7 +54,9 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
int first_core, void *(*start_routine) (void *), void *arg)
{
int i;
+#ifndef NO_HZ_FULL_ISOL
cpu_set_t cpu_set;
+#endif
odp_start_args_t *start_args;
int core_count;
int cpu;
@@ -62,16 +69,17 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
memset(thread_tbl, 0, num * sizeof(odp_linux_pthread_t));
for (i = 0; i < num; i++) {
+ cpu = (first_core + i) % core_count;
+#ifndef NO_HZ_FULL_ISOL
pthread_attr_init(&thread_tbl[i].attr);
CPU_ZERO(&cpu_set);
- cpu = (first_core + i) % core_count;
CPU_SET(cpu, &cpu_set);
pthread_attr_setaffinity_np(&thread_tbl[i].attr,
sizeof(cpu_set_t), &cpu_set);
-
+#endif
start_args = malloc(sizeof(odp_start_args_t));
memset(start_args, 0, sizeof(odp_start_args_t));
start_args->start_routine = start_routine;