Hi Sunil,

I will take all the comments in V6

Regards
Amber

> -----Original Message-----
> From: Pai G, Sunil <sunil.pa...@intel.com>
> Sent: Tuesday, October 4, 2022 7:50 PM
> To: Amber, Kumar <kumar.am...@intel.com>; ovs-dev@openvswitch.org
> Cc: i.maxim...@ovn.org; f...@sysclose.org; Amber, Kumar
> <kumar.am...@intel.com>
> Subject: RE: [ovs-dev] [PATCH v5 5/9] dpif-netdev: Add function pointer for
> dpif re-circulate.
> 
> Hi Amber,
> 
> Couple of comments/suggestions inline.
> 
> > -----Original Message-----
> > From: dev <ovs-dev-boun...@openvswitch.org> On Behalf Of Kumar
> Amber
> > Sent: Friday, August 26, 2022 5:01 AM
> > To: ovs-dev@openvswitch.org
> > Cc: i.maxim...@ovn.org; f...@sysclose.org; Amber, Kumar
> > <kumar.am...@intel.com>
> > Subject: [ovs-dev] [PATCH v5 5/9] dpif-netdev: Add function pointer
> > for dpif re-circulate.
> >
> > The patch adds and re-uses the dpif set command to set the function
> > pointers to be used to switch between different inner dpifs.
> >
> 
> I think the commit message could be reworded to something like:
> This patch adds support for selecting the recirculation implementation based
> on the DPIF implementation.
> WDYT ?
> 
> 
> > Signed-off-by: Kumar Amber <kumar.am...@intel.com>
> > Signed-off-by: Cian Ferriter <cian.ferri...@intel.com>
> > Co-authored-by: Cian Ferriter <cian.ferri...@intel.com>
> >
> > ---
> > v3:
> > - Add description  to the dpif recirc function.
> > - Fix use of return value to fall back to scalar dpif.
> > ---
> > ---
> >  lib/dpif-netdev-private-dpif.c   | 53 +++++++++++++++++++++++++++-----
> >  lib/dpif-netdev-private-dpif.h   | 18 +++++++++++
> >  lib/dpif-netdev-private-thread.h |  3 ++
> >  lib/dpif-netdev.c                | 14 ++++++++-
> >  4 files changed, 80 insertions(+), 8 deletions(-)
> >
> > diff --git a/lib/dpif-netdev-private-dpif.c b/lib/dpif-netdev-private-
> > dpif.c index 07039b1c2..bf1131c5e 100644
> > --- a/lib/dpif-netdev-private-dpif.c
> > +++ b/lib/dpif-netdev-private-dpif.c
> > @@ -55,18 +55,21 @@ dp_netdev_input_avx512_probe(void)
> >  static struct dpif_netdev_impl_info_t dpif_impls[] = {
> >      /* The default scalar C code implementation. */
> >      [DPIF_NETDEV_IMPL_SCALAR] = { .input_func = dp_netdev_input,
> > +      .recirc_func = dp_netdev_recirculate,
> >        .probe = NULL,
> >        .name = "dpif_scalar", },
> >
> >  #if DPIF_NETDEV_IMPL_AVX512_CHECK
> >      /* Only available on x86_64 bit builds with SSE 4.2 used for OVS
> > core. */
> >      [DPIF_NETDEV_IMPL_AVX512] = { .input_func =
> > dp_netdev_input_avx512,
> > +      .recirc_func = dp_netdev_input_avx512_recirc,
> >        .probe = dp_netdev_input_avx512_probe,
> >        .name = "dpif_avx512", },
> >  #endif
> >  };
> >
> >  static dp_netdev_input_func default_dpif_func;
> > +static dp_netdev_recirc_func default_dpif_recirc_func;
> >
> >  dp_netdev_input_func
> >  dp_netdev_impl_get_default(void)
> > @@ -97,6 +100,35 @@ dp_netdev_impl_get_default(void)
> >      return default_dpif_func;
> >  }
> >
> > +dp_netdev_recirc_func
> > +dp_netdev_recirc_impl_get_default(void)
> > +{
> > +    /* For the first call, this will be NULL. Compute the compile
> > +time
> > default.
> > +     */
> > +    if (!default_dpif_recirc_func) {
> > +        int dpif_idx = DPIF_NETDEV_IMPL_SCALAR;
> > +
> > +/* Configure-time overriding to run test suite on all implementations.
> > +*/ #if DPIF_NETDEV_IMPL_AVX512_CHECK #ifdef DPIF_AVX512_DEFAULT
> > +        dp_netdev_input_func_probe probe;
> > +
> > +        /* Check if the compiled default is compatible. */
> > +        probe = dpif_impls[DPIF_NETDEV_IMPL_AVX512].probe;
> > +        if (!probe || !probe()) {
> > +            dpif_idx = DPIF_NETDEV_IMPL_AVX512;
> > +        }
> > +#endif
> > +#endif
> > +
> > +        VLOG_INFO("Default re-circulate DPIF implementation is %s.\n",
> > +                  dpif_impls[dpif_idx].name);
> > +        default_dpif_recirc_func = dpif_impls[dpif_idx].recirc_func;
> > +    }
> > +
> > +    return default_dpif_recirc_func;
> > +}
> > +
> 
> 
> This function seems very identical to dp_netdev_impl_get_default. I wonder
> if we can reuse this function instead or have the common parts moved to a
> separate func ?
> 
> <snipped>
> 
> Thanks and regards
> Sunil
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to