get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 78863,
    "url": "http://patchwork.dpdk.org/api/patches/78863/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200925174340.10014-4-steven.lariau@arm.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20200925174340.10014-4-steven.lariau@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200925174340.10014-4-steven.lariau@arm.com",
    "date": "2020-09-25T17:43:37",
    "name": "[v2,3/5] lib/stack: remove redundant orderings for list->len",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "2d047254a2b7d4efc96255003f70f8134f7aa631",
    "submitter": {
        "id": 1862,
        "url": "http://patchwork.dpdk.org/api/people/1862/?format=api",
        "name": "Steven Lariau",
        "email": "steven.lariau@arm.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patchwork.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20200925174340.10014-4-steven.lariau@arm.com/mbox/",
    "series": [
        {
            "id": 12516,
            "url": "http://patchwork.dpdk.org/api/series/12516/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=12516",
            "date": "2020-09-25T17:43:34",
            "name": "lib/stack: improve lockfree C11 implementation",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/12516/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/78863/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/78863/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 B7D84A04C0;\n\tFri, 25 Sep 2020 19:45:11 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id BC34A1E9F9;\n\tFri, 25 Sep 2020 19:44:19 +0200 (CEST)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by dpdk.org (Postfix) with ESMTP id 198501E9D6\n for <dev@dpdk.org>; Fri, 25 Sep 2020 19:44:14 +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 99D2F101E;\n Fri, 25 Sep 2020 10:44:12 -0700 (PDT)",
            "from localhost.localdomain (unknown [10.57.54.55])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C651B3F718;\n Fri, 25 Sep 2020 10:44:11 -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,\n\tnd@arm.com,\n\tSteven Lariau <steven.lariau@arm.com>",
        "Date": "Fri, 25 Sep 2020 18:43:37 +0100",
        "Message-Id": "<20200925174340.10014-4-steven.lariau@arm.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200925174340.10014-1-steven.lariau@arm.com>",
        "References": "<20200911152938.8019-1-steven.lariau@arm.com>\n <20200925174340.10014-1-steven.lariau@arm.com>",
        "Subject": "[dpdk-dev] [PATCH v2 3/5] lib/stack: remove redundant orderings for\n\tlist->len",
        "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": "The load-acquire of list->len on pop function is redundant.\nOnly the CAS success needs to be load-acquire.\nIt synchronizes with the store release in push, to ensure that the\nupdated head is visible when the new length is visible.\nWithout this, one thread in pop could see the increased length but the\nold list, which doesn't have enough items yet for pop to succeed.\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>\nAcked-by: Gage Eads <gage.eads@intel.com>\n---\n lib/librte_stack/rte_stack_lf_c11.h | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_stack/rte_stack_lf_c11.h b/lib/librte_stack/rte_stack_lf_c11.h\nindex 82b7287f1..2bc639419 100644\n--- a/lib/librte_stack/rte_stack_lf_c11.h\n+++ b/lib/librte_stack/rte_stack_lf_c11.h\n@@ -80,7 +80,7 @@ __rte_stack_lf_pop_elems(struct rte_stack_lf_list *list,\n \tint success;\n \n \t/* Reserve num elements, if available */\n-\tlen = __atomic_load_n(&list->len, __ATOMIC_ACQUIRE);\n+\tlen = __atomic_load_n(&list->len, __ATOMIC_RELAXED);\n \n \twhile (1) {\n \t\t/* Does the list contain enough elements? */\n@@ -91,7 +91,7 @@ __rte_stack_lf_pop_elems(struct rte_stack_lf_list *list,\n \t\tif (__atomic_compare_exchange_n(&list->len,\n \t\t\t\t\t\t&len, len - num,\n \t\t\t\t\t\t1, __ATOMIC_ACQUIRE,\n-\t\t\t\t\t\t__ATOMIC_ACQUIRE))\n+\t\t\t\t\t\t__ATOMIC_RELAXED))\n \t\t\tbreak;\n \t}\n \n",
    "prefixes": [
        "v2",
        "3/5"
    ]
}