get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 139505,
    "url": "http://patches.dpdk.org/api/patches/139505/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1713470562-17415-8-git-send-email-roretzla@linux.microsoft.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": "<1713470562-17415-8-git-send-email-roretzla@linux.microsoft.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1713470562-17415-8-git-send-email-roretzla@linux.microsoft.com",
    "date": "2024-04-18T20:02:30",
    "name": "[v2,07/19] rcu: remove use of VLAs for Windows built code",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "bc3b49836987d0148f969df6a4e296caf0a7730a",
    "submitter": {
        "id": 2077,
        "url": "http://patches.dpdk.org/api/people/2077/?format=api",
        "name": "Tyler Retzlaff",
        "email": "roretzla@linux.microsoft.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/1713470562-17415-8-git-send-email-roretzla@linux.microsoft.com/mbox/",
    "series": [
        {
            "id": 31785,
            "url": "http://patches.dpdk.org/api/series/31785/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31785",
            "date": "2024-04-18T20:02:24",
            "name": "remove use of VLAs for Windows",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/31785/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/139505/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/139505/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 5937B43EA8;\n\tThu, 18 Apr 2024 22:03:50 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0344F40A71;\n\tThu, 18 Apr 2024 22:02:58 +0200 (CEST)",
            "from linux.microsoft.com (linux.microsoft.com [13.77.154.182])\n by mails.dpdk.org (Postfix) with ESMTP id B13E9402CC\n for <dev@dpdk.org>; Thu, 18 Apr 2024 22:02:45 +0200 (CEST)",
            "by linux.microsoft.com (Postfix, from userid 1086)\n id 4DEDF20FD948; Thu, 18 Apr 2024 13:02:44 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 linux.microsoft.com 4DEDF20FD948",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;\n s=default; t=1713470564;\n bh=gTGiz0yKm9UR1tsisqRgqvnSE+lM/9MX3G5jNzkKJZ0=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=hN1cGCBbpwznNfAOwjWlr743P3E3bDc+3pIvKSV8UXHvRJ/71gNVewLw4uE0FErVv\n hS2Q6OtW3ES2UYv+2kArHxjKqCmFvRpvpeBG8VerkPZpXJbINycosKGbxf4mhciVAz\n EDWARSJoCGb1q1shbyIcb9Y+SkHu2mK5SHRpFqzQ=",
        "From": "Tyler Retzlaff <roretzla@linux.microsoft.com>",
        "To": "dev@dpdk.org",
        "Cc": "=?utf-8?q?Morten_Br=C3=B8rup?= <mb@smartsharesystems.com>,\n Akhil Goyal <gakhil@marvell.com>, Aman Singh <aman.deep.singh@intel.com>,\n Anatoly Burakov <anatoly.burakov@intel.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Chengwen Feng <fengchengwen@huawei.com>,\n Dariusz Sosnowski <dsosnowski@nvidia.com>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Fan Zhang <fanzhang.oss@gmail.com>, Ferruh Yigit <ferruh.yigit@amd.com>,\n Harman Kalra <hkalra@marvell.com>,\n Harry van Haaren <harry.van.haaren@intel.com>,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,\n Jiayu Hu <hujiayu.hu@foxmail.com>, Jingjing Wu <jingjing.wu@intel.com>,\n Kevin Laatz <kevin.laatz@intel.com>,\n Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,\n Matan Azrad <matan@nvidia.com>, Ori Kam <orika@nvidia.com>,\n Pallavi Kadam <pallavi.kadam@intel.com>,\n Reshma Pattan <reshma.pattan@intel.com>,\n Sameh Gobriel <sameh.gobriel@intel.com>, Suanming Mou <suanmingm@nvidia.com>,\n Thomas Monjalon <thomas@monjalon.net>,\n Tyler Retzlaff <roretzla@linux.microsoft.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n Volodymyr Fialko <vfialko@marvell.com>, Yipeng Wang <yipeng1.wang@intel.com>,\n Konstantin Ananyev <konstantin.ananyev@huawei.com>",
        "Subject": "[PATCH v2 07/19] rcu: remove use of VLAs for Windows built code",
        "Date": "Thu, 18 Apr 2024 13:02:30 -0700",
        "Message-Id": "<1713470562-17415-8-git-send-email-roretzla@linux.microsoft.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1713470562-17415-1-git-send-email-roretzla@linux.microsoft.com>",
        "References": "<1713397319-26135-1-git-send-email-roretzla@linux.microsoft.com>\n <1713470562-17415-1-git-send-email-roretzla@linux.microsoft.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "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": "From: Konstantin Ananyev <konstantin.ananyev@huawei.com>\n\n1) ./lib/rcu/rte_rcu_qsbr.c:359:9\n    : warning: ISO C90 forbids variable length array ‘data’ [-Wvla]\n2) ./lib/rcu/rte_rcu_qsbr.c:422:9\n    : warning: ISO C90 forbids variable length array ‘data’ [-Wvla]\n\nIn both cases we allocate VLA for one element from RCU deferred queue.\nRight now, size of element in RCU queue is not limited by API.\nThe approach is to introduce some reasonable limitation on RCU DQ\nelement size.\nChoose 128B for now.\nWith that in place we can replace both VLA occurencies with fixed size\narray.\n\nNote that such change need to be treated as API change.\nSo can be applied only at 24.11.\n\nSigned-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>\n---\n lib/rcu/rte_rcu_qsbr.c | 7 ++++---\n lib/rcu/rte_rcu_qsbr.h | 5 +++++\n 2 files changed, 9 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/lib/rcu/rte_rcu_qsbr.c b/lib/rcu/rte_rcu_qsbr.c\nindex f08d974..6800ef0 100644\n--- a/lib/rcu/rte_rcu_qsbr.c\n+++ b/lib/rcu/rte_rcu_qsbr.c\n@@ -278,7 +278,8 @@ struct rte_rcu_qsbr_dq *\n \tif (params == NULL || params->free_fn == NULL ||\n \t\tparams->v == NULL || params->name == NULL ||\n \t\tparams->size == 0 || params->esize == 0 ||\n-\t\t(params->esize % 4 != 0)) {\n+\t\t(params->esize % 4 != 0) ||\n+\t\tparams->esize > RTE_QSBR_ESIZE_MAX) {\n \t\tRCU_LOG(ERR, \"Invalid input parameter\");\n \t\trte_errno = EINVAL;\n \n@@ -356,7 +357,7 @@ int rte_rcu_qsbr_dq_enqueue(struct rte_rcu_qsbr_dq *dq, void *e)\n \t\treturn 1;\n \t}\n \n-\tchar data[dq->esize];\n+\tchar data[RTE_QSBR_ESIZE_MAX + __RTE_QSBR_TOKEN_SIZE];\n \tdq_elem = (__rte_rcu_qsbr_dq_elem_t *)data;\n \t/* Start the grace period */\n \tdq_elem->token = rte_rcu_qsbr_start(dq->v);\n@@ -419,7 +420,7 @@ int rte_rcu_qsbr_dq_enqueue(struct rte_rcu_qsbr_dq *dq, void *e)\n \n \tcnt = 0;\n \n-\tchar data[dq->esize];\n+\tchar data[RTE_QSBR_ESIZE_MAX + __RTE_QSBR_TOKEN_SIZE];\n \t/* Check reader threads quiescent state and reclaim resources */\n \twhile (cnt < n &&\n \t\trte_ring_dequeue_bulk_elem_start(dq->r, &data,\ndiff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h\nindex 0506191..892e5a3 100644\n--- a/lib/rcu/rte_rcu_qsbr.h\n+++ b/lib/rcu/rte_rcu_qsbr.h\n@@ -86,6 +86,11 @@ struct __rte_cache_aligned rte_rcu_qsbr_cnt {\n #define __RTE_QSBR_CNT_MAX ((uint64_t)~0)\n #define __RTE_QSBR_TOKEN_SIZE sizeof(uint64_t)\n \n+/**\n+ * Max allowable size (in bytes) of each element in the defer queue\n+ */\n+#define RTE_QSBR_ESIZE_MAX\t(2 * RTE_CACHE_LINE_MIN_SIZE)\n+\n /* RTE Quiescent State variable structure.\n  * This structure has two elements that vary in size based on the\n  * 'max_threads' parameter.\n",
    "prefixes": [
        "v2",
        "07/19"
    ]
}