get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42645,
    "url": "http://patches.dpdk.org/api/patches/42645/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1531133103-437316-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": "<1531133103-437316-3-git-send-email-yipeng1.wang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1531133103-437316-3-git-send-email-yipeng1.wang@intel.com",
    "date": "2018-07-09T10:44:57",
    "name": "[v4,2/8] hash: fix a multi-writer race condition",
    "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": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1531133103-437316-3-git-send-email-yipeng1.wang@intel.com/mbox/",
    "series": [
        {
            "id": 478,
            "url": "http://patches.dpdk.org/api/series/478/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=478",
            "date": "2018-07-09T10:44:55",
            "name": "Add read-write concurrency to rte_hash library",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/478/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42645/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/42645/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 8EC675F51;\n\tMon,  9 Jul 2018 19:52:32 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby dpdk.org (Postfix) with ESMTP id DA7C2324B\n\tfor <dev@dpdk.org>; Mon,  9 Jul 2018 19:52:23 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t09 Jul 2018 10:52:19 -0700",
            "from skx-yipeng.jf.intel.com ([10.54.81.175])\n\tby FMSMGA003.fm.intel.com with ESMTP; 09 Jul 2018 10:52:10 -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,330,1526367600\"; d=\"scan'208\";a=\"63369593\"",
        "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": "Mon,  9 Jul 2018 03:44:57 -0700",
        "Message-Id": "<1531133103-437316-3-git-send-email-yipeng1.wang@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1531133103-437316-1-git-send-email-yipeng1.wang@intel.com>",
        "References": "<1528455078-328182-1-git-send-email-yipeng1.wang@intel.com>\n\t<1531133103-437316-1-git-send-email-yipeng1.wang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v4 2/8] hash: fix a multi-writer race condition",
        "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 begining 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>\nAcked-by: Pablo de Lara <pablo.de.lara.guarch@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": [
        "v4",
        "2/8"
    ]
}