get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77441,
    "url": "http://patches.dpdk.org/api/patches/77441/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200911152938.8019-6-steven.lariau@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": "<20200911152938.8019-6-steven.lariau@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200911152938.8019-6-steven.lariau@arm.com",
    "date": "2020-09-11T15:29:38",
    "name": "[5/5] lib/stack: remove pop cas release ordering",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "df7d047613318943613632ce5798820fb4b73c6f",
    "submitter": {
        "id": 1862,
        "url": "http://patches.dpdk.org/api/people/1862/?format=api",
        "name": "Steven Lariau",
        "email": "steven.lariau@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/20200911152938.8019-6-steven.lariau@arm.com/mbox/",
    "series": [
        {
            "id": 12150,
            "url": "http://patches.dpdk.org/api/series/12150/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12150",
            "date": "2020-09-11T15:29:33",
            "name": "lib/stack: improve lockfree C11 implementation",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/12150/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77441/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/77441/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 3449DA04BB;\n\tFri, 11 Sep 2020 17:31:58 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1AD311C11D;\n\tFri, 11 Sep 2020 17:31:37 +0200 (CEST)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by dpdk.org (Postfix) with ESMTP id 302771C11C\n for <dev@dpdk.org>; Fri, 11 Sep 2020 17:31:35 +0200 (CEST)",
            "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 A5A131063;\n Fri, 11 Sep 2020 08:31:34 -0700 (PDT)",
            "from localhost.localdomain (unknown [10.57.10.210])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2800F3F73C;\n Fri, 11 Sep 2020 08:31:32 -0700 (PDT)"
        ],
        "From": "Steven Lariau <steven.lariau@arm.com>",
        "To": "Gage Eads <gage.eads@intel.com>,\n\tOlivier Matz <olivier.matz@6wind.com>",
        "Cc": "dev@dpdk.org, nd@arm.com, dharmik.thakkar@arm.com,\n Steven Lariau <steven.lariau@arm.com>",
        "Date": "Fri, 11 Sep 2020 16:29:38 +0100",
        "Message-Id": "<20200911152938.8019-6-steven.lariau@arm.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200911152938.8019-1-steven.lariau@arm.com>",
        "References": "<20200911152938.8019-1-steven.lariau@arm.com>",
        "Subject": "[dpdk-dev] [PATCH 5/5] lib/stack: remove pop cas release ordering",
        "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": "Replace the store-release by relaxed for the CAS success at the end of\npop. Release isn't needed, because there is not write to data that need\nto be synchronized.\nThe only preceding write is when the length is decreased, but the length\nCAS loop already ensures the right synchronization.\nThe situation to avoid is when a thread sees the old length but the new\nlist, that doesn't have enough items for pop to success.\nBut the CAS success on length before the pop loop ensures any core reads\nand updates the latest length, preventing this situation.\n\nThe store-release is also used to make sure that the items are read\nbefore the head is updated, in order to prevent a core in pop to read an\nincorrect value because another core rewrites it with push.\nBut this isn't needed, because items are read only when removed from the\nused list. Right after this, they are pushed to the free list, and the\nstore-release in push makes sure the items are read before they are\nvisible in the free list.\n\nSigned-off-by: Steven Lariau <steven.lariau@arm.com>\nReviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>\nReviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>\n---\n lib/librte_stack/rte_stack_lf_c11.h | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_stack/rte_stack_lf_c11.h b/lib/librte_stack/rte_stack_lf_c11.h\nindex adb9f590d..8800db42e 100644\n--- a/lib/librte_stack/rte_stack_lf_c11.h\n+++ b/lib/librte_stack/rte_stack_lf_c11.h\n@@ -145,7 +145,7 @@ __rte_stack_lf_pop_elems(struct rte_stack_lf_list *list,\n \t\t\t\t(rte_int128_t *)&list->head,\n \t\t\t\t(rte_int128_t *)&old_head,\n \t\t\t\t(rte_int128_t *)&new_head,\n-\t\t\t\t0, __ATOMIC_RELEASE,\n+\t\t\t\t0, __ATOMIC_RELAXED,\n \t\t\t\t__ATOMIC_RELAXED);\n \t} while (success == 0);\n \n",
    "prefixes": [
        "5/5"
    ]
}