get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 86694,
    "url": "https://patches.dpdk.org/api/patches/86694/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1610717170-31279-7-git-send-email-juraj.linkes@pantheon.tech/",
    "project": {
        "id": 1,
        "url": "https://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": "<1610717170-31279-7-git-send-email-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1610717170-31279-7-git-send-email-juraj.linkes@pantheon.tech",
    "date": "2021-01-15T13:26:04",
    "name": "[v15,06/12] build: isolate configuration for Arm generic build",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "1a7fb160fc6eb4663bf61f03af330f71c031b761",
    "submitter": {
        "id": 1626,
        "url": "https://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1610717170-31279-7-git-send-email-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 14781,
            "url": "https://patches.dpdk.org/api/series/14781/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14781",
            "date": "2021-01-15T13:25:58",
            "name": "Arm build options rework",
            "version": 15,
            "mbox": "https://patches.dpdk.org/series/14781/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/86694/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/86694/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id E4DB0A0A02;\n\tFri, 15 Jan 2021 14:27:21 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8BDEA141091;\n\tFri, 15 Jan 2021 14:26:27 +0100 (CET)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id 0A2E414107D\n for <dev@dpdk.org>; Fri, 15 Jan 2021 14:26:24 +0100 (CET)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id DA53CBF47F;\n Fri, 15 Jan 2021 14:26:21 +0100 (CET)",
            "from lb.pantheon.sk ([127.0.0.1])\n by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id oYCWayR0jWPf; Fri, 15 Jan 2021 14:26:20 +0100 (CET)",
            "from service-node1.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 6D9CBBF479;\n Fri, 15 Jan 2021 14:26:17 +0100 (CET)"
        ],
        "X-Virus-Scanned": "amavisd-new at siecit.sk",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "bruce.richardson@intel.com, Ruifeng.Wang@arm.com,\n Honnappa.Nagarahalli@arm.com, Phil.Yang@arm.com, vcchunga@amazon.com,\n Dharmik.Thakkar@arm.com, jerinjacobk@gmail.com, hemant.agrawal@nxp.com,\n ajit.khaparde@broadcom.com, ferruh.yigit@intel.com, aboyer@pensando.io",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Date": "Fri, 15 Jan 2021 14:26:04 +0100",
        "Message-Id": "<1610717170-31279-7-git-send-email-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1610717170-31279-1-git-send-email-juraj.linkes@pantheon.tech>",
        "References": "<1608724059-8562-1-git-send-email-juraj.linkes@pantheon.tech>\n <1610717170-31279-1-git-send-email-juraj.linkes@pantheon.tech>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v15 06/12] build: isolate configuration for Arm\n generic build",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Use generic configuration for the only build where it makes sense - the\ngeneric build. For other builds, if we don't know either of implementer\nID or part number, the build is not supported.\nAdd part numbers to cross files where fallback to generic configuration\nis assumed.\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\nReviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>\n---\n config/arm/arm64_armada_linux_gcc             |  1 +\n config/arm/arm64_dpaa_linux_gcc               |  1 +\n config/arm/arm64_emag_linux_gcc               |  1 +\n ..._linux_gcc => arm64_thunderxt88_linux_gcc} |  1 +\n config/arm/meson.build                        | 45 +++++++++----------\n .../linux_gsg/cross_build_dpdk_for_arm64.rst  |  9 ++--\n 6 files changed, 29 insertions(+), 29 deletions(-)\n rename config/arm/{arm64_thunderx_linux_gcc => arm64_thunderxt88_linux_gcc} (93%)",
    "diff": "diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc\nindex 52c5f4476..143a3c9f8 100644\n--- a/config/arm/arm64_armada_linux_gcc\n+++ b/config/arm/arm64_armada_linux_gcc\n@@ -15,3 +15,4 @@ endian = 'little'\n \n [properties]\n implementer_id = '0x56'\n+part_number = '0xd08'\ndiff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc\nindex 573ae7e42..c3c8a1ef6 100644\n--- a/config/arm/arm64_dpaa_linux_gcc\n+++ b/config/arm/arm64_dpaa_linux_gcc\n@@ -15,3 +15,4 @@ endian = 'little'\n \n [properties]\n implementer_id = 'dpaa'\n+part_number = '0xd08'\ndiff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc\nindex 24f3d533e..c675954fc 100644\n--- a/config/arm/arm64_emag_linux_gcc\n+++ b/config/arm/arm64_emag_linux_gcc\n@@ -14,3 +14,4 @@ endian = 'little'\n \n [properties]\n implementer_id = '0x50'\n+part_number = '0x0'\ndiff --git a/config/arm/arm64_thunderx_linux_gcc b/config/arm/arm64_thunderxt88_linux_gcc\nsimilarity index 93%\nrename from config/arm/arm64_thunderx_linux_gcc\nrename to config/arm/arm64_thunderxt88_linux_gcc\nindex 670764437..758966262 100644\n--- a/config/arm/arm64_thunderx_linux_gcc\n+++ b/config/arm/arm64_thunderxt88_linux_gcc\n@@ -14,3 +14,4 @@ endian = 'little'\n \n [properties]\n implementer_id = '0x43'\n+part_number = '0xa1'\ndiff --git a/config/arm/meson.build b/config/arm/meson.build\nindex 39cf98c67..be9263058 100644\n--- a/config/arm/meson.build\n+++ b/config/arm/meson.build\n@@ -46,8 +46,6 @@ implementer_generic = {\n }\n \n part_number_config_arm = {\n-\t'generic': {'machine_args':  ['-march=armv8-a+crc',\n-\t\t\t\t      '-moutline-atomics']},\n \t'native': {'machine_args':  ['-march=native']},\n \t'0xd03': {'machine_args':  ['-mcpu=cortex-a53']},\n \t'0xd04': {'machine_args':  ['-mcpu=cortex-a35']},\n@@ -103,8 +101,6 @@ implementer_cavium = {\n \t\t['RTE_MAX_NUMA_NODES', 2]\n \t],\n \t'part_number_config': {\n-\t\t'generic': {'machine_args': ['-march=armv8-a+crc+crypto',\n-\t\t\t\t\t     '-mcpu=thunderx']},\n \t\t'native': {'machine_args': ['-march=native']},\n \t\t'0xa1': {\n \t\t\t'machine_args': ['-mcpu=thunderxt88'],\n@@ -154,8 +150,8 @@ implementer_ampere = {\n \t\t['RTE_MAX_NUMA_NODES', 1]\n \t],\n \t'part_number_config': {\n-\t\t'generic': {'machine_args':  ['-march=armv8-a+crc+crypto',\n-\t\t\t\t\t      '-mtune=emag']},\n+\t\t'0x0': {'machine_args':  ['-march=armv8-a+crc+crypto',\n+\t\t\t\t\t  '-mtune=emag']},\n \t\t'native': {'machine_args':  ['-march=native']}\n \t}\n }\n@@ -205,10 +201,9 @@ if dpdk_conf.get('RTE_ARCH_32')\n \tmachine_args += '-mfpu=neon'\n else\n \t# aarch64 build\n-\timplementer_id = 'generic'\n \tif machine == 'default' and not meson.is_cross_build()\n \t\t# default build\n-\t\timplementer_config = implementer['generic']\n+\t\timplementer_id = 'generic'\n \t\tpart_number = 'generic'\n \telif not meson.is_cross_build()\n \t\t# native build\n@@ -221,21 +216,24 @@ else\n \t\t\tcmd_output = cmd.stdout().to_lower().strip().split(' ')\n \t\t\timplementer_id = cmd_output[0]\n \t\t\tpart_number = cmd_output[3]\n-\t\tendif\n-\t\t# Set to generic if variable is not found\n-\t\timplementer_config = implementers.get(implementer_id, ['generic'])\n-\t\tif implementer_config[0] == 'generic'\n-\t\t\timplementer_config = implementer['generic']\n-\t\t\tpart_number = 'generic'\n+\t\telse\n+\t\t\terror('Error when getting Arm Implementer ID and part number.')\n \t\tendif\n \t\tif arm_force_native_march == true\n \t\t\tpart_number = 'native'\n \t\tendif\n \telse\n \t\t# cross build\n-\t\timplementer_id = meson.get_cross_property('implementer_id', 'generic')\n-\t\tpart_number = meson.get_cross_property('part_number', 'generic')\n-\t\timplementer_config = implementers.get(implementer_id)\n+\t\timplementer_id = meson.get_cross_property('implementer_id')\n+\t\tpart_number = meson.get_cross_property('part_number')\n+\tendif\n+\n+\tif implementers.has_key(implementer_id)\n+\t\timplementer_config = implementers[implementer_id]\n+\telse\n+\t\terror('Unsupported Arm implementer: @0@. '.format(implementer_id) +\n+\t\t      'Please add support for it or use the generic ' +\n+\t\t      '(-Dmachine=generic) build.')\n \tendif\n \n \tmessage('Arm implementer: ' + implementer_config['description'])\n@@ -245,15 +243,12 @@ else\n \tif part_number_config.has_key(part_number)\n \t\t# use the specified part_number machine args if found\n \t\tpart_number_config = part_number_config[part_number]\n-\telif not meson.is_cross_build()\n-\t\t# default to generic machine args if part_number is not found\n-\t\t# and not forcing native machine args\n-\t\t# but don't default in cross-builds; if part_number is specified\n-\t\t# incorrectly in a cross-file, it needs to be fixed there\n-\t\tpart_number_config = part_number_config['generic']\n \telse\n-\t\t# doing cross build and part number is not in part_number_config\n-\t\terror('Cross build part number 0@0 not found.'.format(part_number))\n+\t\t# unknown part number\n+\t\terror('Unsupported part number @0@ of implementer @1@. '\n+\t\t      .format(part_number, implementer_id) +\n+\t\t      'Please add support for it or use the generic ' +\n+\t\t      '(-Dmachine=generic) build.')\n \tendif\n \n \t# use default flags with implementer flags\ndiff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst\nindex 972598835..6a883b030 100644\n--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst\n+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst\n@@ -114,8 +114,10 @@ you may use various combinations of implementer/part number::\n       '0x56':    Marvell ARMADA\n       'dpaa':    NXP DPAA\n \n-   Supported part_numbers for generic, 0x41, 0x56, dpaa:\n-      'generic': valid for all armv8-a architectures (default value)\n+   Supported part_numbers for generic:\n+      'generic': valid for all armv8-a architectures (unoptimized portable build)\n+\n+   Supported part_numbers for 0x41, 0x56, dpaa:\n       '0xd03':   cortex-a53\n       '0xd04':   cortex-a35\n       '0xd09':   cortex-a73\n@@ -124,7 +126,6 @@ you may use various combinations of implementer/part number::\n       '0xd0c':   neoverse-n1\n \n    Supported part_numbers for 0x43:\n-      'generic': valid for all Cavium builds\n       '0xa1':    thunderxt88\n       '0xa2':    thunderxt81\n       '0xa3':    thunderxt83\n@@ -132,4 +133,4 @@ you may use various combinations of implementer/part number::\n       '0xb2':    octeontx2\n \n    Supported part_numbers for 0x50:\n-      'generic': valid for all Ampere builds\n+      '0x0':     emag\n",
    "prefixes": [
        "v15",
        "06/12"
    ]
}