[ovs-dev] [PATCH v8 4/6] netdev-dpdk: manage failure in mempool name creation.

Stokes, Ian ian.stokes at intel.com
Thu Oct 19 18:16:00 UTC 2017


> > -----Original Message-----
> > From: Stokes, Ian
> > Sent: Thursday, October 19, 2017 6:23 PM
> > To: Fischetti, Antonio <antonio.fischetti at intel.com>;
> > dev at openvswitch.org
> > Subject: RE: [ovs-dev] [PATCH v8 4/6] netdev-dpdk: manage failure in
> > mempool name creation.
> >
> > > In case a mempool name could not be generated log a message and
> > > return a null mempool pointer to the caller.
> > >
> >
> > Now that I look at this, is it the case that the issues have been
> > resolved in patches 1 and 2 but this is a clean up patch for something
> that might happen?
> 
> [Antonio] Exactly. All the issues we saw:
>  - issue with vhostuserclient in a PVP test
>  - issue of new MTU not displayed when an existing mempool is returned.
>  - issue with the NUMA-Aware usecase
> get resolved by patches #1 and #2.
> 
> All remaining patches are small improvements or just cosmetics.
> 
> This patch would be a small improvement to manage the unlikely event of a
> name creation failure that 'might' happen.
> So this has nothing to do with the issues listed above. I added this patch
> to the series because  - after looking at the code - I thought it would be
> good to track and manage an empty mempool name, just to be extra-safe.
> 

Ok, thanks for clarifying Antonio, I'm going to start testing on this patch series tomorrow with a view to validation. 

I think most reviewers have acked at this point but I want to flag it again to those ccd, I'm anxious to get this patch upstreamed to fix master once it has passed validation.
> 
> >
> >
> > > CC: Mark B Kavanagh <mark.b.kavanagh at intel.com>
> > > CC: Darrell Ball <dlu998 at gmail.com>
> > > CC: Ciara Loftus <ciara.loftus at intel.com>
> > > CC: Kevin Traynor <ktraynor at redhat.com>
> > > CC: Aaron Conole <aconole at redhat.com>
> > > Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for
> > > each
> > > port.")
> > > Signed-off-by: Antonio Fischetti <antonio.fischetti at intel.com>
> > > ---
> > >  lib/netdev-dpdk.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > >
> > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
> > > dc1e9c3..6fc6e1b
> > > 100644
> > > --- a/lib/netdev-dpdk.c
> > > +++ b/lib/netdev-dpdk.c
> > > @@ -502,6 +502,9 @@ dpdk_mp_name(struct dpdk_mp *dmp)
> > >      int ret = snprintf(mp_name, RTE_MEMPOOL_NAMESIZE,
> "ovs_%x_%d_%d_%u",
> > >                         h, dmp->socket_id, dmp->mtu, dmp->mp_size);
> > >      if (ret < 0 || ret >= RTE_MEMPOOL_NAMESIZE) {
> > > +        VLOG_DBG("snprintf returned %d. Failed to generate a mempool
> "
> > > +            "name for \"%s\". Hash:0x%x, mtu:%d, mbufs:%u.",
> > > +            ret, dmp->if_name, h, dmp->mtu, dmp->mp_size);
> > >          return NULL;
> > >      }
> > >      return mp_name;
> > > @@ -533,6 +536,10 @@ dpdk_mp_create(struct netdev_dpdk *dev, int
> > > mtu, bool
> > > *mp_exists)
> > >
> > >      do {
> > >          char *mp_name = dpdk_mp_name(dmp);
> > > +        if (!mp_name) {
> > > +            rte_free(dmp);
> > > +            return NULL;
> > > +        }
> > >
> > >          VLOG_DBG("Port %s: Requesting a mempool of %u mbufs "
> > >                    "on socket %d for %d Rx and %d Tx queues.",
> > > --
> > > 2.4.11
> > >
> > > _______________________________________________
> > > dev mailing list
> > > dev at openvswitch.org
> > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list