get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134944,
    "url": "http://patchwork.dpdk.org/api/patches/134944/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20231208023801.3156065-1-liangxing.wang@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": "<20231208023801.3156065-1-liangxing.wang@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231208023801.3156065-1-liangxing.wang@arm.com",
    "date": "2023-12-08T02:38:01",
    "name": "[v1] net/memif: remove extra mbuf refcnt update in zero copy Tx",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "323d5551f740eaa5a05312d5996ab013aa1433ec",
    "submitter": {
        "id": 3246,
        "url": "http://patchwork.dpdk.org/api/people/3246/?format=api",
        "name": "Liangxing Wang",
        "email": "liangxing.wang@arm.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20231208023801.3156065-1-liangxing.wang@arm.com/mbox/",
    "series": [
        {
            "id": 30484,
            "url": "http://patchwork.dpdk.org/api/series/30484/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=30484",
            "date": "2023-12-08T02:38:01",
            "name": "[v1] net/memif: remove extra mbuf refcnt update in zero copy Tx",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/30484/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/134944/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/134944/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4D611436A0;\n\tFri,  8 Dec 2023 03:38:19 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 147B7402CD;\n\tFri,  8 Dec 2023 03:38:19 +0100 (CET)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by mails.dpdk.org (Postfix) with ESMTP id 8D271402AC\n for <dev@dpdk.org>; Fri,  8 Dec 2023 03:38:17 +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 BC85511FB;\n Thu,  7 Dec 2023 18:39:02 -0800 (PST)",
            "from net-arm-n1amp-02.shanghai.arm.com\n (net-arm-n1amp-02.shanghai.arm.com [10.169.210.107])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 58F753F762;\n Thu,  7 Dec 2023 18:38:14 -0800 (PST)"
        ],
        "From": "Liangxing Wang <liangxing.wang@arm.com>",
        "To": "Jakub Grajciar <jgrajcia@cisco.com>",
        "Cc": "dev@dpdk.org, nd@arm.com, Liangxing Wang <liangxing.wang@arm.com>,\n Ruifeng Wang <ruifeng.wang@arm.com>",
        "Subject": "[PATCH v1] net/memif: remove extra mbuf refcnt update in zero copy Tx",
        "Date": "Fri,  8 Dec 2023 02:38:01 +0000",
        "Message-Id": "<20231208023801.3156065-1-liangxing.wang@arm.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "The refcnt update of stored mbufs in memif driver is redundant since\nthose mbufs are only freed in eth_memif_tx_zc(). No other place\ncan free those stored mbufs quietly. So remove the redundant mbuf\nrefcnt update in dpdk memif driver to avoid extra heavy cost.\nPerformance of dpdk memif zero copy tx is improved with this change.\n\nSigned-off-by: Liangxing Wang <liangxing.wang@arm.com>\nReviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>\n---\n drivers/net/memif/rte_eth_memif.c | 6 ------\n 1 file changed, 6 deletions(-)",
    "diff": "diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c\nindex 7cc8c0da91..962d390b90 100644\n--- a/drivers/net/memif/rte_eth_memif.c\n+++ b/drivers/net/memif/rte_eth_memif.c\n@@ -265,8 +265,6 @@ memif_free_stored_mbufs(struct pmd_process_private *proc_private, struct memif_q\n \tcur_tail = __atomic_load_n(&ring->tail, __ATOMIC_ACQUIRE);\n \twhile (mq->last_tail != cur_tail) {\n \t\tRTE_MBUF_PREFETCH_TO_FREE(mq->buffers[(mq->last_tail + 1) & mask]);\n-\t\t/* Decrement refcnt and free mbuf. (current segment) */\n-\t\trte_mbuf_refcnt_update(mq->buffers[mq->last_tail & mask], -1);\n \t\trte_pktmbuf_free_seg(mq->buffers[mq->last_tail & mask]);\n \t\tmq->last_tail++;\n \t}\n@@ -825,10 +823,6 @@ memif_tx_one_zc(struct pmd_process_private *proc_private, struct memif_queue *mq\n next_in_chain:\n \t/* store pointer to mbuf to free it later */\n \tmq->buffers[slot & mask] = mbuf;\n-\t/* Increment refcnt to make sure the buffer is not freed before server\n-\t * receives it. (current segment)\n-\t */\n-\trte_mbuf_refcnt_update(mbuf, 1);\n \t/* populate descriptor */\n \td0 = &ring->desc[slot & mask];\n \td0->length = rte_pktmbuf_data_len(mbuf);\n",
    "prefixes": [
        "v1"
    ]
}