[dpdk-dev] [PATCH v4 1/4] ethdev: rename memzones allocated for DMA
arybchenko at solarflare.com
Fri Oct 12 18:42:44 CEST 2018
On 10/12/18 7:40 PM, Thomas Monjalon wrote:
> 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 <thomas at 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.
Yes, but testpmd will fail to find the memzone and command to
take a look at descriptors will be broken.
May be it is already broken etc. I think someone from Intel should
More information about the dev