On Tue, Jun 16, 2020 at 10:24 PM Harry van Haaren <harry.van.haa...@intel.com> wrote: > > This commit fixes a bug in 32-bit environments when a core mask greater > than 32-bits is requested. The fix is to convert the bitmask logic to > 64 bits, aligning 64 and 32 bit implementations. > > Fixes: adb5d548 ("examples/eventdev_pipeline_sw_pmd: add sample app") > Cc: sta...@dpdk.org > > Reported-by: Jun Zhou <junx.w.z...@intel.com> > Suggested-by: Mao Jiang <maox.ji...@intel.com> > Signed-off-by: Harry van Haaren <harry.van.haa...@intel.com>
Applied to dpdk-next-eventdev/master. Thanks. > --- > examples/eventdev_pipeline/main.c | 10 +++++----- > examples/eventdev_pipeline/pipeline_common.h | 8 ++++---- > 2 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/examples/eventdev_pipeline/main.c > b/examples/eventdev_pipeline/main.c > index 21958269f..4ac582153 100644 > --- a/examples/eventdev_pipeline/main.c > +++ b/examples/eventdev_pipeline/main.c > @@ -81,7 +81,7 @@ parse_coremask(const char *coremask) > val = xdigit2val(c); > for (j = 0; j < BITS_HEX && idx < MAX_NUM_CORE; j++, idx++) { > if ((1 << j) & val) { > - mask |= (1UL << idx); > + mask |= (1ULL << idx); > count++; > } > } > @@ -232,10 +232,10 @@ parse_app_args(int argc, char **argv) > usage(); > > for (i = 0; i < MAX_NUM_CORE; i++) { > - fdata->rx_core[i] = !!(rx_lcore_mask & (1UL << i)); > - fdata->tx_core[i] = !!(tx_lcore_mask & (1UL << i)); > - fdata->sched_core[i] = !!(sched_lcore_mask & (1UL << i)); > - fdata->worker_core[i] = !!(worker_lcore_mask & (1UL << i)); > + fdata->rx_core[i] = !!(rx_lcore_mask & (1ULL << i)); > + fdata->tx_core[i] = !!(tx_lcore_mask & (1ULL << i)); > + fdata->sched_core[i] = !!(sched_lcore_mask & (1ULL << i)); > + fdata->worker_core[i] = !!(worker_lcore_mask & (1ULL << i)); > > if (fdata->worker_core[i]) > cdata.num_workers++; > diff --git a/examples/eventdev_pipeline/pipeline_common.h > b/examples/eventdev_pipeline/pipeline_common.h > index c7245f7f0..6a4287602 100644 > --- a/examples/eventdev_pipeline/pipeline_common.h > +++ b/examples/eventdev_pipeline/pipeline_common.h > @@ -51,10 +51,10 @@ struct fastpath_data { > bool rx_single; > bool tx_single; > bool sched_single; > - unsigned int rx_core[MAX_NUM_CORE]; > - unsigned int tx_core[MAX_NUM_CORE]; > - unsigned int sched_core[MAX_NUM_CORE]; > - unsigned int worker_core[MAX_NUM_CORE]; > + uint64_t rx_core[MAX_NUM_CORE]; > + uint64_t tx_core[MAX_NUM_CORE]; > + uint64_t sched_core[MAX_NUM_CORE]; > + uint64_t worker_core[MAX_NUM_CORE]; > struct setup_data cap; > } __rte_cache_aligned; > > -- > 2.17.1 >