diff options
Diffstat (limited to 'platform/linux-generic/odp_linux.c')
-rw-r--r-- | platform/linux-generic/odp_linux.c | 12 |
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; |