12/10/2018 09:53, Andrew Rybchenko: > On 10/12/18 12:02 AM, Thomas Monjalon wrote: > > The helper rte_eth_dma_zone_reserve() is called by PMDs > > when probing a new port. > > It creates a new memzone with an unique name. > > The name of this memzone was using the name of the driver > > doing the probe. > > > > In order to avoid assigning the driver before the end of the probing > > (next patch), the driver name is removed from these memzone names. > > The ethdev name (data->name) is not used because it may be too long > > and may be not set at this stage of probing. > > > > Syntax of old name: <driver>_<ring>_<port>_<queue> > > Syntax of new name: eth_p<port>_q<queue>_<ring> > > > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > > --- > > lib/librte_ethdev/rte_ethdev.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c > > index ef99f7068..ec443def5 100644 > > --- a/lib/librte_ethdev/rte_ethdev.c > > +++ b/lib/librte_ethdev/rte_ethdev.c > > @@ -3441,9 +3441,8 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev > > *dev, const char *ring_name, > > char z_name[RTE_MEMZONE_NAMESIZE]; > > const struct rte_memzone *mz; > > > > - snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d", > > - dev->device->driver->name, ring_name, > > - dev->data->port_id, queue_id); > > + snprintf(z_name, sizeof(z_name), "eth_p%d_q%d_%s", > > + dev->data->port_id, queue_id, ring_name); > > > > mz = rte_memzone_lookup(z_name); > > if (mz) > > LGTM, but I've found more places where the pattern is duplicate > and testpmd frightens me: > - app/test-pmd/config.c ring_dma_zone_lookup() which is used > to look at descriptors (looks like Intel specific since has > RTE_LIBRTE_I40E_16BYTE_RX_DESC conditional code)
>From what I see there is no access to rte_device.driver here, except one in exit function. > - drivers/net/bnx2x/bnx2x_rxtx.c > - drivers/net/cxgbe/sge.c (few times) In bnx2x and cxgbe, it is accessed after probing (queue setup or configure steps). > I've not dig why bnx2x and cxgbe do not use rte_eth_dma_zone_reserve(). Yes may be interesting to standardize them. I will add them to this patch.