diff options
author | Ciprian Barbu <ciprian.barbu@enea.com> | 2015-07-30 18:06:13 +0100 |
---|---|---|
committer | Zoltan Kiss <zoltan.kiss@linaro.org> | 2015-07-30 18:48:34 +0100 |
commit | 762cf20e18a3a02d6a8311ed96e6d13b998aeace (patch) | |
tree | b1aa568256692dc40476797181f97f987a6d947e /platform/linux-dpdk/odp_cpumask.c | |
parent | ca493888e186aa38dbcd56282a3ef6e99a09f4c5 (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.c | 8 |
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) |