From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 91470A0093; Tue, 19 May 2020 13:26:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F3F6C1C2B2; Tue, 19 May 2020 13:26:24 +0200 (CEST) Received: from qrelay104.mxroute.com (qrelay104.mxroute.com [172.82.139.104]) by dpdk.org (Postfix) with ESMTP id 46DF25B3C for ; Tue, 19 May 2020 13:26:24 +0200 (CEST) Received: from filter004.mxroute.com ([149.28.56.236] 149.28.56.236.vultr.com) (Authenticated sender: mN4UYu2MZsgR) by qrelay104.mxroute.com (ZoneMTA) with ESMTPA id 1722caf3b43000add6.001 for ; Tue, 19 May 2020 11:26:20 +0000 X-Zone-Loop: 7fa6e57a6a92a4f12eab2ea2cafa1e50242e3e94d3cd X-Originating-IP: [149.28.56.236] Received: from galaxy.mxroute.com (unknown [23.92.70.113]) by filter004.mxroute.com (Postfix) with ESMTPS id 472B23E9F6; Tue, 19 May 2020 11:26:20 +0000 (UTC) Received: from [192.198.151.44] by galaxy.mxroute.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1jazwF-0003St-Tk; Tue, 19 May 2020 06:57:36 -0400 To: Hemant Agrawal , dev@dpdk.org, david.marchand@redhat.com References: <20200514132533.13752-1-hemant.agrawal@nxp.com> <20200515094752.28490-1-hemant.agrawal@nxp.com> <20200515094752.28490-13-hemant.agrawal@nxp.com> From: Ray Kinsella Autocrypt: addr=mdr@ashroe.eu; keydata= mQINBFv8B3wBEAC+5ImcgbIvadt3axrTnt7Sxch3FsmWTTomXfB8YiuHT8KL8L/bFRQSL1f6 ASCHu3M89EjYazlY+vJUWLr0BhK5t/YI7bQzrOuYrl9K94vlLwzD19s/zB/g5YGGR5plJr0s JtJsFGEvF9LL3e+FKMRXveQxBB8A51nAHfwG0WSyx53d61DYz7lp4/Y4RagxaJoHp9lakn8j HV2N6rrnF+qt5ukj5SbbKWSzGg5HQF2t0QQ5tzWhCAKTfcPlnP0GymTBfNMGOReWivi3Qqzr S51Xo7hoGujUgNAM41sxpxmhx8xSwcQ5WzmxgAhJ/StNV9cb3HWIoE5StCwQ4uXOLplZNGnS uxNdegvKB95NHZjRVRChg/uMTGpg9PqYbTIFoPXjuk27sxZLRJRrueg4tLbb3HM39CJwSB++ YICcqf2N+GVD48STfcIlpp12/HI+EcDSThzfWFhaHDC0hyirHxJyHXjnZ8bUexI/5zATn/ux TpMbc/vicJxeN+qfaVqPkCbkS71cHKuPluM3jE8aNCIBNQY1/j87k5ELzg3qaesLo2n1krBH bKvFfAmQuUuJT84/IqfdVtrSCTabvDuNBDpYBV0dGbTwaRfE7i+LiJJclUr8lOvHUpJ4Y6a5 0cxEPxm498G12Z3NoY/mP5soItPIPtLR0rA0fage44zSPwp6cQARAQABtBxSYXkgS2luc2Vs bGEgPG1kckBhc2hyb2UuZXU+iQJUBBMBCAA+FiEEcDUDlKDJaDuJlfZfdJdaH/sCCpsFAlv8 B3wCGyMFCQlmAYAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQdJdaH/sCCptdtRAAl0oE msa+djBVYLIsax+0f8acidtWg2l9f7kc2hEjp9h9aZCpPchQvhhemtew/nKavik3RSnLTAyn B3C/0GNlmvI1l5PFROOgPZwz4xhJKGN7jOsRrbkJa23a8ly5UXwF3Vqnlny7D3z+7cu1qq/f VRK8qFyWkAb+xgqeZ/hTcbJUWtW+l5Zb+68WGEp8hB7TuJLEWb4+VKgHTpQ4vElYj8H3Z94a 04s2PJMbLIZSgmKDASnyrKY0CzTpPXx5rSJ1q+B1FCsfepHLqt3vKSALa3ld6bJ8fSJtDUJ7 JLiU8dFZrywgDIVme01jPbjJtUScW6jONLvhI8Z2sheR71UoKqGomMHNQpZ03ViVWBEALzEt TcjWgJFn8yAmxqM4nBnZ+hE3LbMo34KCHJD4eg18ojDt3s9VrDLa+V9fNxUHPSib9FD9UX/1 +nGfU/ZABmiTuUDM7WZdXri7HaMpzDRJUKI6b+/uunF8xH/h/MHW16VuMzgI5dkOKKv1LejD dT5mA4R+2zBS+GsM0oa2hUeX9E5WwjaDzXtVDg6kYq8YvEd+m0z3M4e6diFeLS77/sAOgaYL 92UcoKD+Beym/fVuC6/55a0e12ksTmgk5/ZoEdoNQLlVgd2INtvnO+0k5BJcn66ZjKn3GbEC VqFbrnv1GnA58nEInRCTzR1k26h9nmS5Ag0EW/wHfAEQAMth1vHr3fOZkVOPfod3M6DkQir5 xJvUW5EHgYUjYCPIa2qzgIVVuLDqZgSCCinyooG5dUJONVHj3nCbITCpJp4eB3PI84RPfDcC hf/V34N/Gx5mTeoymSZDBmXT8YtvV/uJvn+LvHLO4ZJdvq5ZxmDyxfXFmkm3/lLw0+rrNdK5 pt6OnVlCqEU9tcDBezjUwDtOahyV20XqxtUttN4kQWbDRkhT+HrA9WN9l2HX91yEYC+zmF1S OhBqRoTPLrR6g4sCWgFywqztpvZWhyIicJipnjac7qL/wRS+wrWfsYy6qWLIV80beN7yoa6v ccnuy4pu2uiuhk9/edtlmFE4dNdoRf7843CV9k1yRASTlmPkU59n0TJbw+okTa9fbbQgbIb1 pWsAuicRHyLUIUz4f6kPgdgty2FgTKuPuIzJd1s8s6p2aC1qo+Obm2gnBTduB+/n1Jw+vKpt 07d+CKEKu4CWwvZZ8ktJJLeofi4hMupTYiq+oMzqH+V1k6QgNm0Da489gXllU+3EFC6W1qKj tkvQzg2rYoWeYD1Qn8iXcO4Fpk6wzylclvatBMddVlQ6qrYeTmSbCsk+m2KVrz5vIyja0o5Y yfeN29s9emXnikmNfv/dA5fpi8XCANNnz3zOfA93DOB9DBf0TQ2/OrSPGjB3op7RCfoPBZ7u AjJ9dM7VABEBAAGJAjwEGAEIACYWIQRwNQOUoMloO4mV9l90l1of+wIKmwUCW/wHfAIbDAUJ CWYBgAAKCRB0l1of+wIKm3KlD/9w/LOG5rtgtCUWPl4B3pZvGpNym6XdK8cop9saOnE85zWf u+sKWCrxNgYkYP7aZrYMPwqDvilxhbTsIJl5HhPgpTO1b0i+c0n1Tij3EElj5UCg3q8mEc17 c+5jRrY3oz77g7E3oPftAjaq1ybbXjY4K32o3JHFR6I8wX3m9wJZJe1+Y+UVrrjY65gZFxcA thNVnWKErarVQGjeNgHV4N1uF3pIx3kT1N4GSnxhoz4Bki91kvkbBhUgYfNflGURfZT3wIKK +d50jd7kqRouXUCzTdzmDh7jnYrcEFM4nvyaYu0JjSS5R672d9SK5LVIfWmoUGzqD4AVmUW8 pcv461+PXchuS8+zpltR9zajl72Q3ymlT4BTAQOlCWkD0snBoKNUB5d2EXPNV13nA0qlm4U2 GpROfJMQXjV6fyYRvttKYfM5xYKgRgtP0z5lTAbsjg9WFKq0Fndh7kUlmHjuAIwKIV4Tzo75 QO2zC0/NTaTjmrtiXhP+vkC4pcrOGNsbHuaqvsc/ZZ0siXyYsqbctj/sCd8ka2r94u+c7o4l BGaAm+FtwAfEAkXHu4y5Phuv2IRR+x1wTey1U1RaEPgN8xq0LQ1OitX4t2mQwjdPihZQBCnZ wzOrkbzlJMNrMKJpEgulmxAHmYJKgvZHXZXtLJSejFjR0GdHJcL5rwVOMWB8cg== Message-ID: Date: Tue, 19 May 2020 12:26:17 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200515094752.28490-13-hemant.agrawal@nxp.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-AuthUser: mdr@ashroe.eu Subject: Re: [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 15/05/2020 10:47, Hemant Agrawal wrote: > Currently rte_mcp_ptr_list is being shared as a variable > across libs. This is only used in control path. > This patch change it to a exported function based access. > > Signed-off-by: Hemant Agrawal > --- > drivers/bus/fslmc/fslmc_vfio.c | 15 ++++++++++++--- > drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 2 +- > drivers/bus/fslmc/portal/dpaa2_hw_dpci.c | 2 +- > drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 2 +- > drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 7 ++++--- > drivers/bus/fslmc/rte_bus_fslmc_version.map | 2 +- > drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 2 +- > drivers/event/dpaa2/dpaa2_hw_dpcon.c | 2 +- > drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- > drivers/net/dpaa2/dpaa2_mux.c | 2 +- > drivers/net/dpaa2/dpaa2_ptp.c | 2 +- > drivers/raw/dpaa2_qdma/dpaa2_qdma.c | 2 +- > 12 files changed, 26 insertions(+), 16 deletions(-) > > diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c > index 970969d2bf..efe2c43d37 100644 > --- a/drivers/bus/fslmc/fslmc_vfio.c > +++ b/drivers/bus/fslmc/fslmc_vfio.c > @@ -51,6 +51,15 @@ static int fslmc_iommu_type; > static uint32_t *msi_intr_vaddr; > void *(*rte_mcp_ptr_list); > > +void * > +dpaa2_get_mcp_ptr(int portal_idx) > +{ > + if (rte_mcp_ptr_list) > + return rte_mcp_ptr_list[portal_idx]; > + else > + return NULL; > +} > + > static struct rte_dpaa2_object_list dpaa2_obj_list = > TAILQ_HEAD_INITIALIZER(dpaa2_obj_list); > > @@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev) > struct fsl_mc_io dpmng = {0}; > struct mc_version mc_ver_info = {0}; > > - rte_mcp_ptr_list = malloc(sizeof(void *) * 1); > + rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1)); > if (!rte_mcp_ptr_list) { > DPAA2_BUS_ERR("Unable to allocate MC portal memory"); > ret = -ENOMEM; > @@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev) > * required. > */ > if (rte_eal_process_type() == RTE_PROC_SECONDARY) { > - rte_mcp_ptr_list[0] = (void *)v_addr; > + rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr; > return 0; > } > > @@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev) > ret = -1; > goto cleanup; > } > - rte_mcp_ptr_list[0] = (void *)v_addr; > + rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr; > > free(dev_name); > return 0; > diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c > index db49d637f5..79b148f20b 100644 > --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c > +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c > @@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused, > } > > /* Open the dpbp object */ > - dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dpbp_open(&dpbp_node->dpbp, > CMD_PRI_LOW, dpbp_id, &dpbp_node->token); > if (ret) { > diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c > index 5ad0374df9..d393ce6186 100644 > --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c > +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c > @@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused, > } > > /* Open the dpci object */ > - dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dpci_open(&dpci_node->dpci, > CMD_PRI_LOW, dpci_id, &dpci_node->token); > if (ret) { > diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c > index 739ce434ba..21c535f2fb 100644 > --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c > +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c > @@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd, > dpio_dev->hw_id = object_id; > rte_atomic16_init(&dpio_dev->ref_count); > /* Using single portal for all devices */ > - dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > > if (!check_lcore_cpuset) { > check_lcore_cpuset = 1; > diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h > index 33b191f823..194b99c583 100644 > --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h > +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h > @@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev { > uint8_t channel_index; > }; > > -/*! Global MCP list */ > -extern void *(*rte_mcp_ptr_list); > - > /* Refer to Table 7-3 in SEC BG */ > struct qbman_fle { > uint32_t addr_lo; > @@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void); > __rte_internal > void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci); > > +/* Global MCP pointer */ > +__rte_internal > +void *dpaa2_get_mcp_ptr(int portal_idx); > + > #endif > diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map > index 1b7a5a45e9..80da19a277 100644 > --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map > +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map > @@ -21,6 +21,7 @@ INTERNAL { > dpaa2_free_dpbp_dev; > dpaa2_free_dq_storage; > dpaa2_free_eq_descriptors; > + dpaa2_get_mcp_ptr; > dpaa2_io_portal; > dpaa2_svr_family; > dpaa2_virt_mode; > @@ -111,5 +112,4 @@ INTERNAL { > rte_fslmc_get_device_count; > rte_fslmc_object_register; > rte_global_active_dqs_list; > - rte_mcp_ptr_list; > }; > diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c > index fe34e644cc..5d63644934 100644 > --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c > +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c > @@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev) > "Error in allocating the memory for dpsec object"); > return -ENOMEM; > } > - dpseci->regs = rte_mcp_ptr_list[0]; > + dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > > retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token); > if (retcode != 0) { > diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c > index d64e588aa8..200b71640b 100644 > --- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c > +++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c > @@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused, > } > > /* Open the dpcon object */ > - dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dpcon_open(&dpcon_node->dpcon, > CMD_PRI_LOW, dpcon_id, &dpcon_node->token); > if (ret) { > diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c > index 1bab3b064c..2f031ec5c1 100644 > --- a/drivers/net/dpaa2/dpaa2_ethdev.c > +++ b/drivers/net/dpaa2/dpaa2_ethdev.c > @@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) > DPAA2_PMD_ERR("Memory allocation failed for dpni device"); > return -1; > } > - dpni_dev->regs = rte_mcp_ptr_list[0]; > + dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > eth_dev->process_private = (void *)dpni_dev; > > /* For secondary processes, the primary has done all the work */ > diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c > index 9ac8806faf..f8366e839e 100644 > --- a/drivers/net/dpaa2/dpaa2_mux.c > +++ b/drivers/net/dpaa2/dpaa2_mux.c > @@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused, > } > > /* Open the dpdmux object */ > - dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id, > &dpdmux_dev->token); > if (ret) { > diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c > index 316912fe3e..f58eedb314 100644 > --- a/drivers/net/dpaa2/dpaa2_ptp.c > +++ b/drivers/net/dpaa2/dpaa2_ptp.c > @@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused, > } > > /* Open the dprtc object */ > - dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id, > &dprtc_dev->token); > if (ret) { > diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c > index d5202d6522..1be1b6ddf0 100644 > --- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c > +++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c > @@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id) > > /* Open DPDMAI device */ > dpdmai_dev->dpdmai_id = dpdmai_id; > - dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; > + dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX); > ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW, > dpdmai_dev->dpdmai_id, &dpdmai_dev->token); > if (ret) { > Acked-by: Ray Kinsella