> > when we run dpdk in docker, process pid may the same. > add rte_rdtsc() to ensure all the names used in rte_fbarray_init > are different.
There is another patch addressing similar issue, but in a slightly different way: http://patches.dpdk.org/patch/62972/ > > Signed-off-by: Li Han <han....@zte.com.cn> > --- > lib/librte_eal/linux/eal/eal_memalloc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_eal/linux/eal/eal_memalloc.c > b/lib/librte_eal/linux/eal/eal_memalloc.c > index af6d0d0..65a7183 100644 > --- a/lib/librte_eal/linux/eal/eal_memalloc.c > +++ b/lib/librte_eal/linux/eal/eal_memalloc.c > @@ -1374,8 +1374,8 @@ struct rte_memseg * > local_msl = &local_memsegs[msl_idx]; > > /* create distinct fbarrays for each secondary */ > - snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i", > - primary_msl->memseg_arr.name, getpid()); > + snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i_%"PRIx64, > + primary_msl->memseg_arr.name, getpid(), rte_rdtsc()); > > ret = rte_fbarray_init(&local_msl->memseg_arr, name, > primary_msl->memseg_arr.len, > -- > 1.8.3.1