get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42566,
    "url": "http://patches.dpdk.org/api/patches/42566/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1530906406-289697-3-git-send-email-yipeng1.wang@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": "<1530906406-289697-3-git-send-email-yipeng1.wang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1530906406-289697-3-git-send-email-yipeng1.wang@intel.com",
    "date": "2018-07-06T19:46:40",
    "name": "[v3,2/8] hash: fix a multi-writer bug",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a20ea59dd5a6a58bee23d6201404a533c0543220",
    "submitter": {
        "id": 754,
        "url": "http://patches.dpdk.org/api/people/754/?format=api",
        "name": "Wang, Yipeng1",
        "email": "yipeng1.wang@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1530906406-289697-3-git-send-email-yipeng1.wang@intel.com/mbox/",
    "series": [
        {
            "id": 463,
            "url": "http://patches.dpdk.org/api/series/463/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=463",
            "date": "2018-07-06T19:46:38",
            "name": "Add read-write concurrency to rte_hash library",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/463/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42566/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/42566/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 6294F1BE2A;\n\tSat,  7 Jul 2018 04:54:01 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id 5E3781BE0C\n\tfor <dev@dpdk.org>; Sat,  7 Jul 2018 04:53:57 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t06 Jul 2018 19:53:55 -0700",
            "from skx-yipeng.jf.intel.com ([10.54.81.175])\n\tby FMSMGA003.fm.intel.com with ESMTP; 06 Jul 2018 19:53:44 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,319,1526367600\"; d=\"scan'208\";a=\"62888537\"",
        "From": "Yipeng Wang <yipeng1.wang@intel.com>",
        "To": "pablo.de.lara.guarch@intel.com",
        "Cc": "dev@dpdk.org, yipeng1.wang@intel.com, bruce.richardson@intel.com,\n\thonnappa.nagarahalli@arm.com, vguvva@caviumnetworks.com,\n\tbrijesh.s.singh@gmail.com",
        "Date": "Fri,  6 Jul 2018 12:46:40 -0700",
        "Message-Id": "<1530906406-289697-3-git-send-email-yipeng1.wang@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1530906406-289697-1-git-send-email-yipeng1.wang@intel.com>",
        "References": "<1528455078-328182-1-git-send-email-yipeng1.wang@intel.com>\n\t<1530906406-289697-1-git-send-email-yipeng1.wang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v3 2/8] hash: fix a multi-writer bug",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Current multi-writer implementation uses Intel TSX to\nprotect the cuckoo path moving but not the cuckoo\npath searching. After searching, we need to verify again if\nthe same empty slot still exists at the beginning of the TSX\nregion. Otherwise another writer could occupy the empty slot\nbefore the TSX region. Current code does not verify.\n\nFixes: be856325cba3 (\"hash: add scalable multi-writer insertion with Intel TSX\")\nCc: stable@dpdk.org\n\nSigned-off-by: Yipeng Wang <yipeng1.wang@intel.com>\n---\n lib/librte_hash/rte_cuckoo_hash_x86.h | 3 +++\n 1 file changed, 3 insertions(+)",
    "diff": "diff --git a/lib/librte_hash/rte_cuckoo_hash_x86.h b/lib/librte_hash/rte_cuckoo_hash_x86.h\nindex 2c5b017..981d7bd 100644\n--- a/lib/librte_hash/rte_cuckoo_hash_x86.h\n+++ b/lib/librte_hash/rte_cuckoo_hash_x86.h\n@@ -66,6 +66,9 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h,\n \twhile (try < RTE_HASH_TSX_MAX_RETRY) {\n \t\tstatus = rte_xbegin();\n \t\tif (likely(status == RTE_XBEGIN_STARTED)) {\n+\t\t\t/* In case empty slot was gone before entering TSX */\n+\t\t\tif (curr_bkt->key_idx[curr_slot] != EMPTY_SLOT)\n+\t\t\t\trte_xabort(RTE_XABORT_CUCKOO_PATH_INVALIDED);\n \t\t\twhile (likely(curr_node->prev != NULL)) {\n \t\t\t\tprev_node = curr_node->prev;\n \t\t\t\tprev_bkt = prev_node->bkt;\n",
    "prefixes": [
        "v3",
        "2/8"
    ]
}