Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/20005/?format=api
http://patches.dpdk.org/api/patches/20005/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/a1a84f65-3ec2-a4c2-df35-a721c7d01f99@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<a1a84f65-3ec2-a4c2-df35-a721c7d01f99@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/a1a84f65-3ec2-a4c2-df35-a721c7d01f99@intel.com", "date": "2017-01-25T15:33:45", "name": "[dpdk-dev,PATCHv6,16/33] drivers/pool/dpaa2: adding hw offloaded mempool", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "32601d33895acd75ac437b040e0149169b9548f9", "submitter": { "id": 324, "url": "http://patches.dpdk.org/api/people/324/?format=api", "name": "Ferruh Yigit", "email": "ferruh.yigit@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dpdk/patch/a1a84f65-3ec2-a4c2-df35-a721c7d01f99@intel.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/20005/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/20005/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id CF1D7108F;\n\tWed, 25 Jan 2017 16:33:50 +0100 (CET)", "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby dpdk.org (Postfix) with ESMTP id 90EBD1023\n\tfor <dev@dpdk.org>; Wed, 25 Jan 2017 16:33:48 +0100 (CET)", "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby fmsmga105.fm.intel.com with ESMTP; 25 Jan 2017 07:33:47 -0800", "from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.220.38])\n\t([10.237.220.38])\n\tby orsmga005.jf.intel.com with ESMTP; 25 Jan 2017 07:33:45 -0800" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.33,284,1477983600\"; d=\"scan'208\";a=\"57115247\"", "To": "Thomas Monjalon <thomas.monjalon@6wind.com>,\n\tHemant Agrawal <hemant.agrawal@nxp.com>", "References": "<1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com>\n\t<fff0af67-36a5-c125-d3d5-1eb9c7693e46@intel.com>\n\t<228ff5e7-2fa8-7731-681d-e4759bff93cb@nxp.com>\n\t<20101825.1zhD9dk20U@xps13>\n\t<29605f35-7cb2-e526-382c-175df14abcf8@intel.com>", "Cc": "Shreyansh Jain <shreyansh.jain@nxp.com>, dev@dpdk.org,\n\tbruce.richardson@intel.com, john.mcnamara@intel.com,\n\tjerin.jacob@caviumnetworks.com", "From": "Ferruh Yigit <ferruh.yigit@intel.com>", "Message-ID": "<a1a84f65-3ec2-a4c2-df35-a721c7d01f99@intel.com>", "Date": "Wed, 25 Jan 2017 15:33:45 +0000", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101\n\tThunderbird/45.6.0", "MIME-Version": "1.0", "In-Reply-To": "<29605f35-7cb2-e526-382c-175df14abcf8@intel.com>", "Content-Type": "text/plain; charset=windows-1252", "Content-Transfer-Encoding": "7bit", "Subject": "Re: [dpdk-dev] [PATCHv6 16/33] drivers/pool/dpaa2: adding hw\n\toffloaded mempool", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "On 1/25/2017 3:29 PM, Ferruh Yigit wrote:\n> On 1/24/2017 5:28 PM, Thomas Monjalon wrote:\n>> 2017-01-24 20:07, Hemant Agrawal:\n>>> On 1/24/2017 4:19 PM, Ferruh Yigit wrote:\n>>>> On 1/24/2017 9:12 AM, Shreyansh Jain wrote:\n>>>>> On Monday 23 January 2017 11:04 PM, Ferruh Yigit wrote:\n>>>>>> On 1/23/2017 11:59 AM, Hemant Agrawal wrote:\n>>>>>>> +# library dependencies\n>>>>>>> +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_eal\n>>>>>>> +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_mempool\n>>>>>>> +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_common_dpaa2_qbman\n>>>>>>\n>>>>>> This dependeny doesn not looks correct, there is no folder like that.\n>>>>>\n>>>>> This is something even I need to understand. From the DEPDIRS what I\n>>>>> understood was that though it refers to a directory, it essentially\n>>>>> links libraries in build/lib/*.\n>>>>>\n>>>>> Further, somehow the development is deploying drivers/bus,\n>>>>> drivers/common and drivers/pool in lib/* under the name specified as\n>>>>> LIB in Makefile. My understanding was that it is expected behavior and\n>>>>> not special because of drivers folder.\n>>>>>\n>>>>> Thus, above line only links lib/librte_common_dpaa2_qbman generated by\n>>>>> drivers/common/dpaa2/qbman code.\n>>>>>\n>>>>> In fact, I think, this might also one of the issues why a parallel\n>>>>> shared build fails for DPAA2 PMD (added in Cover letter).\n>>>>> The dependency graph cannot create a graph for drivers/common\n>>>>> as dependency for drivers/net or drivers/bus and hence parallel build\n>>>>> fails because of missing libraries which are being parallely compiled.\n>>>>\n>>>> DEPDIRS-y is mainly to resolve dependencies for compilation order, and\n>>>> should point to the folder,\n>>>>\n>>>> Following line will cause \"librte_eal\" to be compiled before driver:\n>>>> DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_eal\n>>>>\n>>>> So \"lib/librte_common_dpaa2_qbman\" does not makes more sense, since\n>>>> there is no folder like that.\n>>>>\n>>>>\n>>>> Somewhere in the history, with following commit, DEPDIRS-y gained a side\n>>>> effect, it has been used to set dynamic linking dependencies, to fix\n>>>> underlinking issue:\n>>>> bf5a46fa5972 (\"mk: generate internal library dependencies\")\n>>>>\n>>>> I guess you are having that line to benefit from this side effect, but\n>>>> this can be done with following more properly:\n>>>> LDLIBS += lib/librte_common_dpaa2_qbman\n>>>>\n>>>>\n>>>> To resolve the drivers/net to drivers/common dependency, following line\n>>>> in this Makefile should work:\n>>>> DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/common/dpaa2\n>>>>\n>>>> This adds following, which will cause \"drivers/common\" compiled before\n>>>> any \"drivers/net\":\n>>>> LOCAL_DEPDIRS-drivers/net += drivers/common\n>>>\n>>> Thanks for your suggestion. This is one thing, I am not yet able to fix.\n>>>\n>>> Based on your suggestions:\n>>> e.g.\n>>> LDLIBS += -lrte_common_dpaa2_qbman\n>>> DEPDIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += drivers/common/dpaa2\n>>>\n>>> It does add entry in the \".depdirs\"\n>>> ./arm64-dpaa2-linuxapp-gcc/.depdirs:168:LOCAL_DEPDIRS-drivers/bus += \n>>> drivers/common\n>>> ./arm64-dpaa2-linuxapp-gcc/.depdirs:170:LOCAL_DEPDIRS-drivers += lib\n>>> ./arm64-dpaa2-linuxapp-gcc/.depdirs:172:LOCAL_DEPDIRS-drivers += lib\n>>> ./arm64-dpaa2-linuxapp-gcc/.depdirs:174:LOCAL_DEPDIRS-drivers/pool += \n>>> drivers/common\n>>>\n>>> However, we keep on getting:\n>>> LD librte_bus_fslmc.so.1.1\n>>> aarch64-linux-gnu-gcc: error: drivers/common/dpaa2: No such file or \n>>> directory\n>>> make[6]: *** [librte_bus_fslmc.so.1.1] Error 1\n>>\n>> Probably because of:\n>>\n>> # Translate DEPDIRS-y into LDLIBS\n>> # Ignore (sub)directory dependencies which do not provide an actual library\n>> _IGNORE_DIRS = lib/librte_eal/% lib/librte_compat\n>> _DEPDIRS = $(filter-out $(_IGNORE_DIRS),$(DEPDIRS-y))\n>> _LDDIRS = $(subst librte_ether,librte_ethdev,$(_DEPDIRS))\n>> LDLIBS += $(subst lib/lib,-l,$(_LDDIRS))\n>>\n>> It shows one important thing: qbman is not a driver, it is a lib.\n>> So drivers/common/dpaa2 should be handled differently.\n>>\n>> Solution 1: tweak mk/rte.lib.mk for directories in drivers/common/\n>> Solution 2: host your bus libs outside of DPDK\n>>\n> \n> For solution 1, following [1] seems working, \"drivers/%\" preferred\n> against \"drivers/common/%\" because \"drivers/bus/%\" has same issue. And\n> as far as I can see dpaa2 is the only driver dependency in lib folder.\n> \n> [1]\n> diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk\n> index 33a5f5a..ac4df9a 100644\n> --- a/mk/rte.lib.mk\n> +++ b/mk/rte.lib.mk\n> @@ -79,7 +79,7 @@ endif\n> \n> # Translate DEPDIRS-y into LDLIBS\n> # Ignore (sub)directory dependencies which do not provide an actual library\n> -_IGNORE_DIRS = lib/librte_eal/% lib/librte_compat\n> +_IGNORE_DIRS = lib/librte_eal/% lib/librte_compat drivers/%\n> _DEPDIRS = $(filter-out $(_IGNORE_DIRS),$(DEPDIRS-y))\n> _LDDIRS = $(subst librte_ether,librte_ethdev,$(_DEPDIRS))\n> LDLIBS += $(subst lib/lib,-l,$(_LDDIRS))\n> \n\nHi Hemant,\n\nOverall, shared compilation with -jN is working fine for me with below\npatch, putting here as reference:", "diff": "diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile\nindex 263c4fd..405fbaa 100644\n--- a/drivers/bus/fslmc/Makefile\n+++ b/drivers/bus/fslmc/Makefile\n@@ -74,6 +74,8 @@ SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_bus.c\n\n # library dependencies\n DEPDIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += lib/librte_eal\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += lib/librte_common_dpaa2_qbman\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += drivers/common/dpaa2\n+\n+LDLIBS += -lrte_common_dpaa2_qbman\n\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile\nindex d52fa39..5b1613c 100644\n--- a/drivers/net/dpaa2/Makefile\n+++ b/drivers/net/dpaa2/Makefile\n@@ -65,8 +65,12 @@ SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c\n # library dependencies\n DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_eal lib/librte_ether\n DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_mempool\nlib/librte_mbuf\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_common_dpaa2_qbman\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_bus_fslmc\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pool_dpaa2\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/common/dpaa2\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/bus/fslmc\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/pool/dpaa2\n+\n+LDLIBS += -lrte_common_dpaa2_qbman\n+LDLIBS += -lrte_bus_fslmc\n+LDLIBS += -lrte_pool_dpaa2\n\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/pool/dpaa2/Makefile b/drivers/pool/dpaa2/Makefile\nindex 69e1bb4..6b27cd5 100644\n--- a/drivers/pool/dpaa2/Makefile\n+++ b/drivers/pool/dpaa2/Makefile\n@@ -65,7 +65,11 @@ SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) +=\ndpaa2_hw_mempool.c\n # library dependencies\n DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_eal\n DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_mempool\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_common_dpaa2_qbman\n-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += lib/librte_bus_fslmc\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += drivers/common/dpaa2\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_POOL) += drivers/bus/fslmc\n+\n+\n+LDLIBS += -lrte_common_dpaa2_qbman\n+LDLIBS += -lrte_bus_fslmc\n\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/mk/rte.lib.mk b/mk/rte.lib.mk\nindex 33a5f5a..ac4df9a 100644\n--- a/mk/rte.lib.mk\n+++ b/mk/rte.lib.mk\n@@ -79,7 +79,7 @@ endif\n\n # Translate DEPDIRS-y into LDLIBS\n # Ignore (sub)directory dependencies which do not provide an actual library\n-_IGNORE_DIRS = lib/librte_eal/% lib/librte_compat\n+_IGNORE_DIRS = lib/librte_eal/% lib/librte_compat drivers/%\n _DEPDIRS = $(filter-out $(_IGNORE_DIRS),$(DEPDIRS-y))\n _LDDIRS = $(subst librte_ether,librte_ethdev,$(_DEPDIRS))\n LDLIBS += $(subst lib/lib,-l,$(_LDDIRS))\n", "prefixes": [ "dpdk-dev", "PATCHv6", "16/33" ] }{ "id": 20005, "url": "