get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 65497,
    "url": "http://patches.dpdk.org/api/patches/65497/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200203194912.4669-2-honnappa.nagarahalli@arm.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": "<20200203194912.4669-2-honnappa.nagarahalli@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200203194912.4669-2-honnappa.nagarahalli@arm.com",
    "date": "2020-02-03T19:49:08",
    "name": "[v2,1/5] test/meson: hash test split into shorter subtests",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "b7c402d9da99098b10eb18aa42503c938f047472",
    "submitter": {
        "id": 1045,
        "url": "http://patches.dpdk.org/api/people/1045/?format=api",
        "name": "Honnappa Nagarahalli",
        "email": "honnappa.nagarahalli@arm.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200203194912.4669-2-honnappa.nagarahalli@arm.com/mbox/",
    "series": [
        {
            "id": 8401,
            "url": "http://patches.dpdk.org/api/series/8401/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8401",
            "date": "2020-02-03T19:49:07",
            "name": "test/meson: fix hash readwrite timeout failure",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/8401/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/65497/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/65497/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id BC0A7A04FA;\n\tMon,  3 Feb 2020 20:49:34 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id E3F871BFC0;\n\tMon,  3 Feb 2020 20:49:28 +0100 (CET)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by dpdk.org (Postfix) with ESMTP id CDB5D1BFB2\n for <dev@dpdk.org>; Mon,  3 Feb 2020 20:49:26 +0100 (CET)",
            "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 470D01045;\n Mon,  3 Feb 2020 11:49:26 -0800 (PST)",
            "from qc2400f-1.austin.arm.com (qc2400f-1.austin.arm.com\n [10.118.14.48])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 32F973F52E;\n Mon,  3 Feb 2020 11:49:26 -0800 (PST)"
        ],
        "From": "Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>",
        "To": "agupta3@marvell.com, yipeng1.wang@intel.com, sameh.gobriel@intel.com,\n honnappa.nagarahalli@arm.com",
        "Cc": "thomas@monjalon.net, david.marchand@redhat.com, dev@dpdk.org, nd@arm.com",
        "Date": "Mon,  3 Feb 2020 13:49:08 -0600",
        "Message-Id": "<20200203194912.4669-2-honnappa.nagarahalli@arm.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200203194912.4669-1-honnappa.nagarahalli@arm.com>",
        "References": "<1567748973-24192-1-git-send-email-agupta3@marvell.com>\n <20200203194912.4669-1-honnappa.nagarahalli@arm.com>",
        "Subject": "[dpdk-dev] [PATCH v2 1/5] test/meson: hash test split into shorter\n\tsubtests",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "From: Amit Gupta <agupta3@marvell.com>\n\nhash_readwrite meson test was taking longer time to complete.\nThe test always get TIMEOUT, hence test is split into\nfunctional and perf test. perf test is being moved under\ndpdk perf testsuites in  meson build.\n\nSigned-off-by: Amit Gupta <agupta3@marvell.com>\nAcked-by: Yipeng Wang <yipeng1.wang@intel.com>\n---\n app/test/meson.build           |   3 +-\n app/test/test_hash_readwrite.c | 146 +++++++++++++++++++++++++++++++++\n 2 files changed, 148 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/app/test/meson.build b/app/test/meson.build\nindex 22b0cefaa..08c0ecb3f 100644\n--- a/app/test/meson.build\n+++ b/app/test/meson.build\n@@ -233,7 +233,7 @@ fast_test_names = [\n         'distributor_autotest',\n         'eventdev_common_autotest',\n         'fbarray_autotest',\n-        'hash_readwrite_autotest',\n+        'hash_readwrite_func_autotest',\n         'hash_readwrite_lf_autotest',\n         'ipsec_autotest',\n         'kni_autotest',\n@@ -282,6 +282,7 @@ perf_test_names = [\n         'stack_perf_autotest',\n         'stack_lf_perf_autotest',\n         'rand_perf_autotest',\n+        'hash_readwrite_perf_autotest',\n ]\n \n driver_test_names = [\ndiff --git a/app/test/test_hash_readwrite.c b/app/test/test_hash_readwrite.c\nindex 615767fb6..aa55db7fe 100644\n--- a/app/test/test_hash_readwrite.c\n+++ b/app/test/test_hash_readwrite.c\n@@ -605,6 +605,150 @@ test_hash_readwrite_perf(struct perf *perf_results, int use_htm,\n \treturn -1;\n }\n \n+static int\n+test_hash_rw_perf_main(void)\n+{\n+\t/*\n+\t * Variables used to choose different tests.\n+\t * use_htm indicates if hardware transactional memory should be used.\n+\t * reader_faster indicates if the reader threads should finish earlier\n+\t * than writer threads. This is to timing either reader threads or\n+\t * writer threads for performance numbers.\n+\t */\n+\tint use_htm, reader_faster;\n+\tunsigned int i = 0, core_id = 0;\n+\n+\tif (rte_lcore_count() < 3) {\n+\t\tprintf(\"Not enough cores for hash_readwrite_autotest, expecting at least 3\\n\");\n+\t\treturn TEST_SKIPPED;\n+\t}\n+\n+\tRTE_LCORE_FOREACH_SLAVE(core_id) {\n+\t\tslave_core_ids[i] = core_id;\n+\t\ti++;\n+\t}\n+\n+\tsetlocale(LC_NUMERIC, \"\");\n+\n+\tif (rte_tm_supported()) {\n+\t\tprintf(\"Hardware transactional memory (lock elision) \"\n+\t\t\t\"is supported\\n\");\n+\n+\t\tprintf(\"Test read-write with Hardware transactional memory\\n\");\n+\n+\t\tuse_htm = 1;\n+\n+\t\treader_faster = 1;\n+\t\tif (test_hash_readwrite_perf(&htm_results, use_htm,\n+\t\t\t\t\t\t\treader_faster) < 0)\n+\t\t\treturn -1;\n+\n+\t\treader_faster = 0;\n+\t\tif (test_hash_readwrite_perf(&htm_results, use_htm,\n+\t\t\t\t\t\t\treader_faster) < 0)\n+\t\t\treturn -1;\n+\t} else {\n+\t\tprintf(\"Hardware transactional memory (lock elision) \"\n+\t\t\t\"is NOT supported\\n\");\n+\t}\n+\n+\tprintf(\"Test read-write without Hardware transactional memory\\n\");\n+\tuse_htm = 0;\n+\n+\treader_faster = 1;\n+\tif (test_hash_readwrite_perf(&non_htm_results, use_htm,\n+\t\t\t\t\t\t\treader_faster) < 0)\n+\t\treturn -1;\n+\treader_faster = 0;\n+\tif (test_hash_readwrite_perf(&non_htm_results, use_htm,\n+\t\t\t\t\t\t\treader_faster) < 0)\n+\t\treturn -1;\n+\n+\tprintf(\"================\\n\");\n+\tprintf(\"Results summary:\\n\");\n+\tprintf(\"================\\n\");\n+\n+\tprintf(\"single read: %u\\n\", htm_results.single_read);\n+\tprintf(\"single write: %u\\n\", htm_results.single_write);\n+\tfor (i = 0; i < NUM_TEST; i++) {\n+\t\tprintf(\"+++ core_cnt: %u +++\\n\", core_cnt[i]);\n+\t\tprintf(\"HTM:\\n\");\n+\t\tprintf(\"  read only: %u\\n\", htm_results.read_only[i]);\n+\t\tprintf(\"  write only: %u\\n\", htm_results.write_only[i]);\n+\t\tprintf(\"  read-write read: %u\\n\", htm_results.read_write_r[i]);\n+\t\tprintf(\"  read-write write: %u\\n\", htm_results.read_write_w[i]);\n+\n+\t\tprintf(\"non HTM:\\n\");\n+\t\tprintf(\"  read only: %u\\n\", non_htm_results.read_only[i]);\n+\t\tprintf(\"  write only: %u\\n\", non_htm_results.write_only[i]);\n+\t\tprintf(\"  read-write read: %u\\n\",\n+\t\t\tnon_htm_results.read_write_r[i]);\n+\t\tprintf(\"  read-write write: %u\\n\",\n+\t\t\tnon_htm_results.read_write_w[i]);\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int\n+test_hash_rw_func_main(void)\n+{\n+\t/*\n+\t * Variables used to choose different tests.\n+\t * use_htm indicates if hardware transactional memory should be used.\n+\t * reader_faster indicates if the reader threads should finish earlier\n+\t * than writer threads. This is to timing either reader threads or\n+\t * writer threads for performance numbers.\n+\t */\n+\tint use_htm, use_ext;\n+\tunsigned int i = 0, core_id = 0;\n+\n+\tif (rte_lcore_count() < 3) {\n+\t\tprintf(\"Not enough cores for hash_readwrite_autotest, expecting at least 3\\n\");\n+\t\treturn TEST_SKIPPED;\n+\t}\n+\n+\tRTE_LCORE_FOREACH_SLAVE(core_id) {\n+\t\tslave_core_ids[i] = core_id;\n+\t\ti++;\n+\t}\n+\n+\tsetlocale(LC_NUMERIC, \"\");\n+\n+\tif (rte_tm_supported()) {\n+\t\tprintf(\"Hardware transactional memory (lock elision) \"\n+\t\t\t\"is supported\\n\");\n+\n+\t\tprintf(\"Test read-write with Hardware transactional memory\\n\");\n+\n+\t\tuse_htm = 1;\n+\t\tuse_ext = 0;\n+\n+\t\tif (test_hash_readwrite_functional(use_ext, use_htm) < 0)\n+\t\t\treturn -1;\n+\n+\t\tuse_ext = 1;\n+\t\tif (test_hash_readwrite_functional(use_ext, use_htm) < 0)\n+\t\t\treturn -1;\n+\n+\t} else {\n+\t\tprintf(\"Hardware transactional memory (lock elision) \"\n+\t\t\t\"is NOT supported\\n\");\n+\t}\n+\n+\tprintf(\"Test read-write without Hardware transactional memory\\n\");\n+\tuse_htm = 0;\n+\tuse_ext = 0;\n+\tif (test_hash_readwrite_functional(use_ext, use_htm) < 0)\n+\t\treturn -1;\n+\n+\tuse_ext = 1;\n+\tif (test_hash_readwrite_functional(use_ext, use_htm) < 0)\n+\t\treturn -1;\n+\n+\treturn 0;\n+}\n+\n static int\n test_hash_readwrite_main(void)\n {\n@@ -706,3 +850,5 @@ test_hash_readwrite_main(void)\n }\n \n REGISTER_TEST_COMMAND(hash_readwrite_autotest, test_hash_readwrite_main);\n+REGISTER_TEST_COMMAND(hash_readwrite_func_autotest, test_hash_rw_func_main);\n+REGISTER_TEST_COMMAND(hash_readwrite_perf_autotest, test_hash_rw_perf_main);\n",
    "prefixes": [
        "v2",
        "1/5"
    ]
}