> -----Original Message----- > From: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > Sent: Monday, April 6, 2020 2:35 AM > To: Van Haaren, Harry <harry.van.haa...@intel.com>; Phil Yang > <phil.y...@arm.com>; tho...@monjalon.net; Ananyev, Konstantin > <konstantin.anan...@intel.com>; step...@networkplumber.org; > maxime.coque...@redhat.com; dev@dpdk.org > Cc: david.march...@redhat.com; jer...@marvell.com; > hemant.agra...@nxp.com; Gavin Hu <gavin...@arm.com>; Ruifeng Wang > <ruifeng.w...@arm.com>; Joyce Kong <joyce.k...@arm.com>; nd > <n...@arm.com>; sta...@dpdk.org; Honnappa Nagarahalli > <honnappa.nagaraha...@arm.com>; nd <n...@arm.com> > Subject: RE: [PATCH v3 08/12] service: remove redundant code > > <snip> > > > > > > > The service id validation is verified in the calling function, remove > > > the redundant code inside the service_update function. > > > > > > Fixes: 21698354c832 ("service: introduce service cores concept") > > > Cc: sta...@dpdk.org > > > > > > Signed-off-by: Phil Yang <phil.y...@arm.com> > > > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > > > > > > Same comment as patch 7/12, is this really a "Fix"? This functionality is > > not > > "broken" in the current code? And is there value in porting to stable? I'd > see > > this as unnecessary churn. > > > > As before, it is a valid cleanup (thanks), and I'd like to take it for new > > DPDK > > releases. > > > > Happy to Ack without Fixes or Cc Stable, if that's acceptable to you? > Agreed.
Agreed. > > > > > > > > > > --- > > > lib/librte_eal/common/rte_service.c | 31 > > > ++++++++++++------------------- > > > 1 file changed, 12 insertions(+), 19 deletions(-) > > > > > > diff --git a/lib/librte_eal/common/rte_service.c > > > b/lib/librte_eal/common/rte_service.c > > > index 2117726..557b5a9 100644 > > > --- a/lib/librte_eal/common/rte_service.c > > > +++ b/lib/librte_eal/common/rte_service.c > > > @@ -552,21 +552,10 @@ rte_service_start_with_defaults(void) > > > } > > > > > > static int32_t > > > -service_update(struct rte_service_spec *service, uint32_t lcore, > > > +service_update(uint32_t sid, uint32_t lcore, > > > uint32_t *set, uint32_t *enabled) > 'set' parameter does not need be passed by reference, pass by value is > enough. Agreed. > > > > { > > > -uint32_t i; > > > -int32_t sid = -1; > > > - > > > -for (i = 0; i < RTE_SERVICE_NUM_MAX; i++) { > > > -if ((struct rte_service_spec *)&rte_services[i] == service && > > > -service_valid(i)) { > > > -sid = i; > > > -break; > > > -} > > > -} > > > - > > > -if (sid == -1 || lcore >= RTE_MAX_LCORE) > > > +if (lcore >= RTE_MAX_LCORE) > > > return -EINVAL; > The validations look somewhat inconsistent in service_update function, we > are validating some parameters and not some. > Suggest bringing the validation of the service id also into this function and > remove it from the calling functions. Agreed. I will update it in the next version. > > > > > > > if (!lcore_states[lcore].is_service_core) > > > @@ -598,19 +587,23 @@ service_update(struct rte_service_spec > *service, > > > uint32_t lcore, int32_t rte_service_map_lcore_set(uint32_t id, > > > uint32_t lcore, uint32_t enabled) { > > > -struct rte_service_spec_impl *s; > > > -SERVICE_VALID_GET_OR_ERR_RET(id, s, -EINVAL); > > > +/* validate ID, or return error value */ > > > +if (id >= RTE_SERVICE_NUM_MAX || !service_valid(id)) > > > +return -EINVAL; > > > + > > > uint32_t on = enabled > 0; > We do not need the above line. 'enabled' can be passed directly to > 'service_update'. Agreed. > > > > -return service_update(&s->spec, lcore, &on, 0); > > > +return service_update(id, lcore, &on, 0); > > > } > > > > > > int32_t > > > rte_service_map_lcore_get(uint32_t id, uint32_t lcore) { > > > -struct rte_service_spec_impl *s; > > > -SERVICE_VALID_GET_OR_ERR_RET(id, s, -EINVAL); > > > +/* validate ID, or return error value */ > > > +if (id >= RTE_SERVICE_NUM_MAX || !service_valid(id)) > > > +return -EINVAL; > > > + > > > uint32_t enabled; > > > -int ret = service_update(&s->spec, lcore, 0, &enabled); > > > +int ret = service_update(id, lcore, 0, &enabled); > > > if (ret == 0) > > > return enabled; > > > return ret; > > > -- > > > 2.7.4 >