On Fri, 15 Nov 2024 15:50:08 +0800 Congjie Zhou <zcjie0...@qq.com> wrote:
> add the tsc into the name. > > Suggested-by: Stephen Hemminger <step...@networkplumber.org> > Signed-off-by: Congjie Zhou <zcjie0...@qq.com> > --- > > When multiple secondary processes run in different containers, names > identified by PIDs are not unique due to the pid namespace. > So Add tsc to redefine a unique name. > > v1: use monotonic time to redefine the name > v2: use tsc to redefine the name > > lib/eal/linux/eal_memalloc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/lib/eal/linux/eal_memalloc.c b/lib/eal/linux/eal_memalloc.c > index e354efc..367d401 100644 > --- a/lib/eal/linux/eal_memalloc.c > +++ b/lib/eal/linux/eal_memalloc.c > @@ -16,6 +16,7 @@ > #include <fcntl.h> > #include <signal.h> > #include <setjmp.h> > +#include <inttypes.h> > #ifdef F_ADD_SEALS /* if file sealing is supported, so is memfd */ > #include <linux/memfd.h> > #define MEMFD_SUPPORTED > @@ -1447,8 +1448,8 @@ secondary_msl_create_walk(const struct rte_memseg_list > *msl, > 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_get_tsc_cycles()); > Worst case name is now: 'memseg-1048576k-128-128-1234567890-ffffffffffffffff' = 51 characters Acked-by: Stephen Hemminger <step...@networkplumber.org>