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)
- drivers/net/bnx2x/bnx2x_rxtx.c
- drivers/net/cxgbe/sge.c (few times)
I've not dig why bnx2x and cxgbe do not use rte_eth_dma_zone_reserve().