From: Thomas Monjalon <thomas@monjalon.net>
To: SteveX Yang <stevex.yang@intel.com>
Cc: qiming.yang@intel.com, beilei.xing@intel.com,
jingjing.wu@intel.com, dev@dpdk.org,
Qi Zhang <qi.z.zhang@intel.com>,
ferruh.yigit@intel.com
Subject: Re: [dpdk-dev] [PATCH] net/iavf: release port upon close
Date: Sun, 13 Sep 2020 10:53:15 +0200 [thread overview]
Message-ID: <2832850.hRueZzFlNT@thomas> (raw)
In-Reply-To: <20200811072752.20813-1-stevex.yang@intel.com>
Hi,
SteveX Yang <stevex.yang@intel.com> wrote:
> Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so all the private resources
> for the port can be freed by rte_eth_dev_close().
>
> Signed-off-by: SteveX Yang <stevex.yang@intel.com>
I guess the X is not part of your name.
[...]
> -static int
> -iavf_dev_uninit(struct rte_eth_dev *dev)
> -{
> - struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
> -
> - if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> - return -EPERM;
All the code below is moved from iavf_dev_uninit() where it was
restricted to the primary process, to iavf_dev_close() which can be
called from the primary process.
It looks inconsistent.
>
> dev->dev_ops = NULL;
> dev->rx_pkt_burst = NULL;
> dev->tx_pkt_burst = NULL;
>
> - iavf_dev_close(dev);
> +
> + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_RSS_PF) {
> + if (vf->rss_lut) {
> + rte_free(vf->rss_lut);
> + vf->rss_lut = NULL;
> + }
> + if (vf->rss_key) {
> + rte_free(vf->rss_key);
> + vf->rss_key = NULL;
> + }
> + }
>
> rte_free(vf->vf_res);
> vf->vsi_res = NULL;
>
> @@ -1449,15 +1456,15 @@ iavf_dev_uninit(struct rte_eth_dev *dev)
>
> rte_free(vf->aq_resp);
> vf->aq_resp = NULL;
>
> +}
>
> - if (vf->rss_lut) {
> - rte_free(vf->rss_lut);
> - vf->rss_lut = NULL;
> - }
> - if (vf->rss_key) {
> - rte_free(vf->rss_key);
> - vf->rss_key = NULL;
> - }
> +static int
> +iavf_dev_uninit(struct rte_eth_dev *dev)
> +{
> + if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> + return -EPERM;
> +
> + iavf_dev_close(dev);
Are you sure about what should be freed in the secondary process?
If iavf_dev_close() should not be called by the secondary process,
you should move the check inside the function,
because iavf_dev_close() is also called by rte_eth_dev_close().
>
> return 0;
>
> }
next prev parent reply other threads:[~2020-09-13 8:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-11 7:27 [dpdk-dev] [PATCH] net/iavf: release port upon close SteveX Yang
2020-09-03 12:30 ` Zhang, Qi Z
2020-09-13 8:53 ` Thomas Monjalon [this message]
2020-09-13 22:25 ` Thomas Monjalon
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=2832850.hRueZzFlNT@thomas \
--to=thomas@monjalon.net \
--cc=beilei.xing@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=jingjing.wu@intel.com \
--cc=qi.z.zhang@intel.com \
--cc=qiming.yang@intel.com \
--cc=stevex.yang@intel.com \
/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.