Hi Thomas, Thanks for the review.
On Tue, Apr 6, 2021 at 5:24 PM Thomas Monjalon <[email protected]> wrote: > 26/03/2021 11:47, Michal Krawczyk: > > From: Stanislaw Kardach <[email protected]> > > > > rte_timer_subsystem_init() may return -EALREADY if the timer subsystem > > was already initialized. This can happen i.e. in PMD code (see > > eth_ena_dev_init). This is not an error, rather a notification as the > > initialization function simply returns without any action taken. > > Missing these lines: > > Fixes: 50247fe03fe0 ("test/timer: exercise new APIs in secondary process") > Cc: [email protected] Will add in V2. > > > > Signed-off-by: Stanislaw Kardach <[email protected]> > > Reviewed-by: Michal Krawczyk <[email protected]> > > --- > > app/test/test.c | 11 ++++++----- > > 1 file changed, 6 insertions(+), 5 deletions(-) > > > > diff --git a/app/test/test.c b/app/test/test.c > > index 624dd48042..864523ed61 100644 > > --- a/app/test/test.c > > +++ b/app/test/test.c > > @@ -134,8 +134,13 @@ main(int argc, char **argv) > > goto out; > > } > > > > + argv += ret; > > + > > + prgname = argv[0]; > > + > > #ifdef RTE_LIB_TIMER > > - if (rte_timer_subsystem_init() < 0) { > > + ret = rte_timer_subsystem_init(); > > + if (ret < 0 && ret != -EALREADY) { > > ret = -1; > > goto out; > > } > > @@ -146,10 +151,6 @@ main(int argc, char **argv) > > goto out; > > } > > > > - argv += ret; > > - > > - prgname = argv[0]; > > - > > How this change for argv/prgname is related to the fix? > This patch saves the return value of rte_timer_subsystem_init() in ret which overwrites the previous ret that held the number of arguments consumed by rte_eal_init(). Similarly because rte_eal_init() reshuffles argv, the prgname is effectively at argv[ret]. So I need to move this logic before the timer subsystem check.

