get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/20005/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 20005,
    "url": "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"
    ]
}