aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk/odp_cpumask.c
diff options
context:
space:
mode:
authorCiprian Barbu <ciprian.barbu@enea.com>2015-07-30 18:06:13 +0100
committerZoltan Kiss <zoltan.kiss@linaro.org>2015-07-30 18:48:34 +0100
commit762cf20e18a3a02d6a8311ed96e6d13b998aeace (patch)
treeb1aa568256692dc40476797181f97f987a6d947e /platform/linux-dpdk/odp_cpumask.c
parentca493888e186aa38dbcd56282a3ef6e99a09f4c5 (diff)
linux-dpdk: fix odp_cpumask_def_worker
According to the API documentation odp_cpumask_def_worker sets up to 'num' CPUs and returns the count actually set or all available CPUs when num is 0. The former implementation was always returning the number of slave lcores, which is typically cpu_count -1. Note that if num == 0 the loop will iterate through all available slave lcores, thus conforming to the definition. Signed-off-by: Ciprian Barbu <ciprian.barbu@enea.com> Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Diffstat (limited to 'platform/linux-dpdk/odp_cpumask.c')
-rw-r--r--platform/linux-dpdk/odp_cpumask.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/platform/linux-dpdk/odp_cpumask.c b/platform/linux-dpdk/odp_cpumask.c
index c63352a5a..8aeccad92 100644
--- a/platform/linux-dpdk/odp_cpumask.c
+++ b/platform/linux-dpdk/odp_cpumask.c
@@ -208,18 +208,20 @@ int odp_cpumask_next(const odp_cpumask_t *mask, int cpu)
return -1;
}
-int odp_cpumask_def_worker(odp_cpumask_t *mask, int num ODP_UNUSED)
+int odp_cpumask_def_worker(odp_cpumask_t *mask, int num)
{
- int i;
+ int i, count = 0;
odp_cpumask_zero(mask);
RTE_LCORE_FOREACH_SLAVE(i) {
odp_cpumask_set(mask, i);
+ if (++count == num)
+ break;
}
/* exclude master lcore */
- return rte_lcore_count() - 1;
+ return count;
}
int odp_cpumask_def_control(odp_cpumask_t *mask, int num ODP_UNUSED)