Message ID | 20200927223629.11156-1-rmody@marvell.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Jerin Jacob |
Headers | show |
Series | net/bnx2x: release port upon close | expand |
Context | Check | Description |
---|---|---|
ci/Intel-compilation | fail | Compilation issues |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-testing | success | Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-broadcom-Performance | success | Performance Testing PASS |
ci/iol-broadcom-Functional | fail | Functional Testing issues |
ci/checkpatch | success | coding style OK |
On Mon, Sep 28, 2020 at 4:07 AM Rasesh Mody <rmody@marvell.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(). With this change the > private port resources are released in the .dev_close callback. > > Signed-off-by: Rasesh Mody <rmody@marvell.com> It looks like it has ICC compiler errors in this patch[1]. I don't think, it is introduced by this patch. It is from CPT crypto driver. [1] http://mails.dpdk.org/archives/test-report/2020-September/155058.html
On 9/29/2020 7:20 PM, Jerin Jacob wrote: > On Mon, Sep 28, 2020 at 4:07 AM Rasesh Mody <rmody@marvell.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(). With this change the >> private port resources are released in the .dev_close callback. >> >> Signed-off-by: Rasesh Mody <rmody@marvell.com> > > > It looks like it has ICC compiler errors in this patch[1]. I don't > think, it is introduced by this patch. It is from CPT crypto driver. > > [1] > http://mails.dpdk.org/archives/test-report/2020-September/155058.html > These patches seems pulled to the Thomas' "cleanup ethdev close operation" patchset: [v3,17/29] net/qede: release port upon close (https://patches.dpdk.org/patch/79083/) [v3,06/29] net/bnx2x: release port upon close (https://patches.dpdk.org/patch/79072/) Can you please review the patches in that patchset? And they can be merged with the whole patchset. I will mark this set as superseded. Btw, agree that compile error looks unrelated.
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c index b2ea5fafa..d0268fcd5 100644 --- a/drivers/net/bnx2x/bnx2x_ethdev.c +++ b/drivers/net/bnx2x/bnx2x_ethdev.c @@ -287,6 +287,10 @@ bnx2x_dev_close(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(sc); + /* only close in case of the primary process */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return; + if (IS_VF(sc)) bnx2x_vf_close(sc); @@ -295,6 +299,9 @@ bnx2x_dev_close(struct rte_eth_dev *dev) /* free ilt */ bnx2x_free_ilt_mem(sc); + + /* mac_addrs must not be freed alone because part of dev_private */ + dev->data->mac_addrs = NULL; } static int @@ -726,6 +733,11 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf) goto out; } + /* Pass the information to the rte_eth_dev_close() that it should also + * release the private port resources. + */ + eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; + return 0; out: @@ -753,8 +765,9 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev) static int eth_bnx2x_dev_uninit(struct rte_eth_dev *eth_dev) { - /* mac_addrs must not be freed alone because part of dev_private */ - eth_dev->data->mac_addrs = NULL; + struct bnx2x_softc *sc = eth_dev->data->dev_private; + PMD_INIT_FUNC_TRACE(sc); + bnx2x_dev_close(eth_dev); return 0; }
Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so all the private resources for the port can be freed by rte_eth_dev_close(). With this change the private port resources are released in the .dev_close callback. Signed-off-by: Rasesh Mody <rmody@marvell.com> --- drivers/net/bnx2x/bnx2x_ethdev.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)