Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/20004/?format=api
http://patches.dpdk.org/api/patches/20004/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/29605f35-7cb2-e526-382c-175df14abcf8@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": "<29605f35-7cb2-e526-382c-175df14abcf8@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/29605f35-7cb2-e526-382c-175df14abcf8@intel.com", "date": "2017-01-25T15:29:53", "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": "91a4184f59c3dc4903c86aeea0782b8021c0a657", "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/29605f35-7cb2-e526-382c-175df14abcf8@intel.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/20004/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/20004/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 0DFD1108F;\n\tWed, 25 Jan 2017 16:29:59 +0100 (CET)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby dpdk.org (Postfix) with ESMTP id 5953D1023\n\tfor <dev@dpdk.org>; Wed, 25 Jan 2017 16:29:57 +0100 (CET)", "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby orsmga105.jf.intel.com with ESMTP; 25 Jan 2017 07:29:56 -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:29:54 -0800" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.33,284,1477983600\"; d=\"scan'208\";a=\"57113296\"", "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>", "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": "<29605f35-7cb2-e526-382c-175df14abcf8@intel.com>", "Date": "Wed, 25 Jan 2017 15:29:53 +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": "<20101825.1zhD9dk20U@xps13>", "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/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\nFor solution 1, following [1] seems working, \"drivers/%\" preferred\nagainst \"drivers/common/%\" because \"drivers/bus/%\" has same issue. And\nas far as I can see dpaa2 is the only driver dependency in lib folder.\n\n[1]", "diff": "diff --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": 20004, "url": "