All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: Renata Saiakhova <Renata.Saiakhova@ekinops.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Ferruh Yigit <ferruh.yigit@intel.com>,
	Andrew Rybchenko <arybchenko@solarflare.com>,
	Ray Kinsella <mdr@ashroe.eu>, Neil Horman <nhorman@tuxdriver.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v2 1/4] librte_ethdev: Introduce a function to release HW rings
Date: Wed, 13 May 2020 10:48:28 +0100	[thread overview]
Message-ID: <5ff280ce-551b-5c10-75ee-617250742f9a@intel.com> (raw)
In-Reply-To: <20200513091547.19658-2-Renata.Saiakhova@ekinops.com>

On 13-May-20 10:15 AM, Renata Saiakhova wrote:
> Free previously allocated memzone for HW rings
> 
> Signed-off-by: Renata Saiakhova <Renata.Saiakhova@ekinops.com>
> ---
>   lib/librte_ethdev/rte_ethdev.c           | 30 ++++++++++++++++++++++--
>   lib/librte_ethdev/rte_ethdev_driver.h    | 19 +++++++++++++++
>   lib/librte_ethdev/rte_ethdev_version.map |  1 +
>   3 files changed, 48 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 72aed59a5..7200ef48c 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -4181,6 +4181,10 @@ rte_eth_dev_rx_intr_ctl_q_get_fd(uint16_t port_id, uint16_t queue_id)
>   	return fd;
>   }
>   
> +#define ETH_DMA_MZONE_NAME(_name, _port_id, _queue_id, _ring_name) \
> +	snprintf(_name, sizeof(_name), "eth_p%d_q%d_%s", \
> +			_port_id, _queue_id, _ring_name)
> +
>   const struct rte_memzone *
>   rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name,
>   			 uint16_t queue_id, size_t size, unsigned align,
> @@ -4190,8 +4194,7 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name,
>   	const struct rte_memzone *mz;
>   	int rc;
>   
> -	rc = snprintf(z_name, sizeof(z_name), "eth_p%d_q%d_%s",
> -		      dev->data->port_id, queue_id, ring_name);
> +	rc = ETH_DMA_MZONE_NAME(z_name, dev->data->port_id, queue_id, ring_name);
>   	if (rc >= RTE_MEMZONE_NAMESIZE) {
>   		RTE_ETHDEV_LOG(ERR, "ring name too long\n");
>   		rte_errno = ENAMETOOLONG;
> @@ -4206,6 +4209,29 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name,
>   			RTE_MEMZONE_IOVA_CONTIG, align);
>   }
>   
> +int __rte_experimental
> +rte_eth_dma_zone_free(const struct rte_eth_dev *dev, const char *ring_name,
> +		uint16_t queue_id)
> +{
> +	char z_name[RTE_MEMZONE_NAMESIZE];
> +	const struct rte_memzone *mz;
> +	int rc = 0;
> +
> +	rc = ETH_DMA_MZONE_NAME(z_name, dev->data->port_id, queue_id, ring_name);
> +	if (rc >= RTE_MEMZONE_NAMESIZE) {
> +		RTE_ETHDEV_LOG(ERR, "ring name too long\n");
> +		return -ENAMETOOLONG;
> +	}
> +
> +	mz = rte_memzone_lookup(z_name);
> +	if (mz)
> +		rc = rte_memzone_free(mz);
> +
> +	return rc;
> +}
> +
> +#undef ETH_DMA_MZONE_NAME

Not sure #undef is necessary in a .c file :)

Otherwise LGTM

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

-- 
Thanks,
Anatoly

  reply	other threads:[~2020-05-13  9:48 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13  9:15 [dpdk-dev] [PATCH v2 0/4] Memory corruption due to HW rings allocation Renata Saiakhova
2020-05-13  9:15 ` [dpdk-dev] [PATCH v2 1/4] librte_ethdev: Introduce a function to release HW rings Renata Saiakhova
2020-05-13  9:48   ` Burakov, Anatoly [this message]
2020-05-13 11:00   ` Neil Horman
2020-05-14  7:07   ` Ray Kinsella
2020-05-13  9:15 ` [dpdk-dev] [PATCH v2 2/4] drivers/net: Fix in igb and ixgbe HW rings memory Renata Saiakhova
2020-05-13  9:15 ` [dpdk-dev] [PATCH v2 3/4] drivers/net: Fix in i40e HW rings memory overlap Renata Saiakhova
2020-05-13  9:15 ` [dpdk-dev] [PATCH v2 4/4] drivers/net: Fix in em and ice " Renata Saiakhova

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5ff280ce-551b-5c10-75ee-617250742f9a@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=Renata.Saiakhova@ekinops.com \
    --cc=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=mdr@ashroe.eu \
    --cc=nhorman@tuxdriver.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.