get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 137798,
    "url": "http://patches.dpdk.org/api/patches/137798/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240302093813.14922-6-rnagadheeraj@marvell.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": "<20240302093813.14922-6-rnagadheeraj@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240302093813.14922-6-rnagadheeraj@marvell.com",
    "date": "2024-03-02T09:38:11",
    "name": "[v5,5/7] compress/nitrox: add software queue management",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "83388fab662f8dff362937bc9a1e1fa9a1da0996",
    "submitter": {
        "id": 1365,
        "url": "http://patches.dpdk.org/api/people/1365/?format=api",
        "name": "Nagadheeraj Rottela",
        "email": "rnagadheeraj@marvell.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20240302093813.14922-6-rnagadheeraj@marvell.com/mbox/",
    "series": [
        {
            "id": 31344,
            "url": "http://patches.dpdk.org/api/series/31344/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31344",
            "date": "2024-03-02T09:38:06",
            "name": "add Nitrox compress device support",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/31344/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/137798/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/137798/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 E637D43C30;\n\tSat,  2 Mar 2024 10:39:19 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6324E42DAC;\n\tSat,  2 Mar 2024 10:38:55 +0100 (CET)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id 3099542DD0\n for <dev@dpdk.org>; Sat,  2 Mar 2024 10:38:53 +0100 (CET)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id\n 4229SnJk026333; Sat, 2 Mar 2024 01:38:52 -0800",
            "from dc5-exch05.marvell.com ([199.233.59.128])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3wjfayafpg-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Sat, 02 Mar 2024 01:38:52 -0800 (PST)",
            "from DC5-EXCH05.marvell.com (10.69.176.209) by\n DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.1258.12; Sat, 2 Mar 2024 01:38:50 -0800",
            "from hyd1399.caveonetworks.com.com (10.69.176.80) by\n DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server id\n 15.2.1258.12 via Frontend Transport; Sat, 2 Mar 2024 01:38:48 -0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=\n from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding:content-type; s=\n pfpt0220; bh=uElbGPzDh2JtoHjmy/9cHWqCGEVxwBcZT7UpMBhRH2Y=; b=Bny\n 89Fp/hHZFMEdlFsmFQjKHAoIB+rDlzB4XeSIbs8idG12ljGoGQ6paBCtaW5oO4pL\n EsJl+fCAxElGjYNMwYOX1e9BsPRM7D4FaSD8/vbyZvrpdXlLzoUlSGpByy+58Mtc\n zRGZi3vXrpSFlvRL9/SYJXadctSee2L5nvdSHBJrfBURm6qdy2rNKArVeYbORmje\n mGw8dTukLzqdjJkmAPf/2S3RadViaFStX1SSGlUW5e55kM0m9x6OQemygSCIPUbt\n OZrygx4XUFlnUUHnLy9Yusrk/h2wUK2gU4oh2BHbGhutLXf0NbARAup4Up4zXpDc\n 3OSPuDXHacXxthlJFmA==",
        "From": "Nagadheeraj Rottela <rnagadheeraj@marvell.com>",
        "To": "<gakhil@marvell.com>, <fanzhang.oss@gmail.com>, <ashishg@marvell.com>",
        "CC": "<dev@dpdk.org>, Nagadheeraj Rottela <rnagadheeraj@marvell.com>",
        "Subject": "[PATCH v5 5/7] compress/nitrox: add software queue management",
        "Date": "Sat, 2 Mar 2024 15:08:11 +0530",
        "Message-ID": "<20240302093813.14922-6-rnagadheeraj@marvell.com>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20240302093813.14922-1-rnagadheeraj@marvell.com>",
        "References": "<20240302093813.14922-1-rnagadheeraj@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "wd6F8JouGw-wMNNIyY_PGbLzYYZ0Lc9i",
        "X-Proofpoint-GUID": "wd6F8JouGw-wMNNIyY_PGbLzYYZ0Lc9i",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26\n definitions=2024-03-02_04,2024-03-01_03,2023-05-22_02",
        "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": "Added software queue management code corresponding to\nqueue pair setup and release functions.\n\nSigned-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>\n---\n drivers/compress/nitrox/nitrox_comp.c | 115 +++++++++++++++++++++++---\n drivers/compress/nitrox/nitrox_comp.h |   1 +\n 2 files changed, 105 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/compress/nitrox/nitrox_comp.c b/drivers/compress/nitrox/nitrox_comp.c\nindex e97a686fbf..299cb8e783 100644\n--- a/drivers/compress/nitrox/nitrox_comp.c\n+++ b/drivers/compress/nitrox/nitrox_comp.c\n@@ -5,11 +5,13 @@\n #include <rte_compressdev_pmd.h>\n #include <rte_comp.h>\n #include <rte_errno.h>\n+#include <rte_malloc.h>\n \n #include \"nitrox_comp.h\"\n #include \"nitrox_device.h\"\n #include \"nitrox_logs.h\"\n #include \"nitrox_comp_reqmgr.h\"\n+#include \"nitrox_qp.h\"\n \n static const char nitrox_comp_drv_name[] = RTE_STR(COMPRESSDEV_NAME_NITROX_PMD);\n static const struct rte_driver nitrox_rte_comp_drv = {\n@@ -17,6 +19,9 @@ static const struct rte_driver nitrox_rte_comp_drv = {\n \t.alias = nitrox_comp_drv_name\n };\n \n+static int nitrox_comp_queue_pair_release(struct rte_compressdev *dev,\n+\t\t\t\t\t  uint16_t qp_id);\n+\n static const struct rte_compressdev_capabilities\n \t\t\t\tnitrox_comp_pmd_capabilities[] = {\n \t{\t.algo = RTE_COMP_ALGO_DEFLATE,\n@@ -84,8 +89,15 @@ static void nitrox_comp_dev_stop(struct rte_compressdev *dev)\n \n static int nitrox_comp_dev_close(struct rte_compressdev *dev)\n {\n+\tint i, ret;\n \tstruct nitrox_comp_device *comp_dev = dev->data->dev_private;\n \n+\tfor (i = 0; i < dev->data->nb_queue_pairs; i++) {\n+\t\tret = nitrox_comp_queue_pair_release(dev, i);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\n \trte_mempool_free(comp_dev->xform_pool);\n \tcomp_dev->xform_pool = NULL;\n \treturn 0;\n@@ -94,13 +106,33 @@ static int nitrox_comp_dev_close(struct rte_compressdev *dev)\n static void nitrox_comp_stats_get(struct rte_compressdev *dev,\n \t\t\t\t  struct rte_compressdev_stats *stats)\n {\n-\tRTE_SET_USED(dev);\n-\tRTE_SET_USED(stats);\n+\tint qp_id;\n+\n+\tfor (qp_id = 0; qp_id < dev->data->nb_queue_pairs; qp_id++) {\n+\t\tstruct nitrox_qp *qp = dev->data->queue_pairs[qp_id];\n+\n+\t\tif (!qp)\n+\t\t\tcontinue;\n+\n+\t\tstats->enqueued_count += qp->stats.enqueued_count;\n+\t\tstats->dequeued_count += qp->stats.dequeued_count;\n+\t\tstats->enqueue_err_count += qp->stats.enqueue_err_count;\n+\t\tstats->dequeue_err_count += qp->stats.dequeue_err_count;\n+\t}\n }\n \n static void nitrox_comp_stats_reset(struct rte_compressdev *dev)\n {\n-\tRTE_SET_USED(dev);\n+\tint qp_id;\n+\n+\tfor (qp_id = 0; qp_id < dev->data->nb_queue_pairs; qp_id++) {\n+\t\tstruct nitrox_qp *qp = dev->data->queue_pairs[qp_id];\n+\n+\t\tif (!qp)\n+\t\t\tcontinue;\n+\n+\t\tmemset(&qp->stats, 0, sizeof(qp->stats));\n+\t}\n }\n \n static void nitrox_comp_dev_info_get(struct rte_compressdev *dev,\n@@ -121,19 +153,80 @@ static int nitrox_comp_queue_pair_setup(struct rte_compressdev *dev,\n \t\t\t\t\tuint16_t qp_id,\n \t\t\t\t\tuint32_t max_inflight_ops, int socket_id)\n {\n-\tRTE_SET_USED(dev);\n-\tRTE_SET_USED(qp_id);\n-\tRTE_SET_USED(max_inflight_ops);\n-\tRTE_SET_USED(socket_id);\n-\treturn -1;\n+\tstruct nitrox_comp_device *comp_dev = dev->data->dev_private;\n+\tstruct nitrox_device *ndev = comp_dev->ndev;\n+\tstruct nitrox_qp *qp = NULL;\n+\tint err;\n+\n+\tNITROX_LOG(DEBUG, \"queue %d\\n\", qp_id);\n+\tif (qp_id >= ndev->nr_queues) {\n+\t\tNITROX_LOG(ERR, \"queue %u invalid, max queues supported %d\\n\",\n+\t\t\t   qp_id, ndev->nr_queues);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tif (dev->data->queue_pairs[qp_id]) {\n+\t\terr = nitrox_comp_queue_pair_release(dev, qp_id);\n+\t\tif (err)\n+\t\t\treturn err;\n+\t}\n+\n+\tqp = rte_zmalloc_socket(\"nitrox PMD qp\", sizeof(*qp),\n+\t\t\t\tRTE_CACHE_LINE_SIZE,\n+\t\t\t\tsocket_id);\n+\tif (!qp) {\n+\t\tNITROX_LOG(ERR, \"Failed to allocate nitrox qp\\n\");\n+\t\treturn -ENOMEM;\n+\t}\n+\n+\tqp->type = NITROX_QUEUE_ZIP;\n+\tqp->qno = qp_id;\n+\terr = nitrox_qp_setup(qp, ndev->bar_addr, dev->data->name,\n+\t\t\t      max_inflight_ops, ZIP_INSTR_SIZE,\n+\t\t\t      socket_id);\n+\tif (unlikely(err))\n+\t\tgoto qp_setup_err;\n+\n+\tdev->data->queue_pairs[qp_id] = qp;\n+\tNITROX_LOG(DEBUG, \"queue %d setup done\\n\", qp_id);\n+\treturn 0;\n+\n+qp_setup_err:\n+\trte_free(qp);\n+\treturn err;\n }\n \n static int nitrox_comp_queue_pair_release(struct rte_compressdev *dev,\n \t\t\t\t\t  uint16_t qp_id)\n {\n-\tRTE_SET_USED(dev);\n-\tRTE_SET_USED(qp_id);\n-\treturn 0;\n+\tstruct nitrox_comp_device *comp_dev = dev->data->dev_private;\n+\tstruct nitrox_device *ndev = comp_dev->ndev;\n+\tstruct nitrox_qp *qp;\n+\tint err;\n+\n+\tNITROX_LOG(DEBUG, \"queue %d\\n\", qp_id);\n+\tif (qp_id >= ndev->nr_queues) {\n+\t\tNITROX_LOG(ERR, \"queue %u invalid, max queues supported %d\\n\",\n+\t\t\t   qp_id, ndev->nr_queues);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tqp = dev->data->queue_pairs[qp_id];\n+\tif (!qp) {\n+\t\tNITROX_LOG(DEBUG, \"queue %u already freed\\n\", qp_id);\n+\t\treturn 0;\n+\t}\n+\n+\tif (!nitrox_qp_is_empty(qp)) {\n+\t\tNITROX_LOG(ERR, \"queue %d not empty\\n\", qp_id);\n+\t\treturn -EAGAIN;\n+\t}\n+\n+\tdev->data->queue_pairs[qp_id] = NULL;\n+\terr = nitrox_qp_release(qp, ndev->bar_addr);\n+\trte_free(qp);\n+\tNITROX_LOG(DEBUG, \"queue %d release done\\n\", qp_id);\n+\treturn err;\n }\n \n static int nitrox_comp_private_xform_create(struct rte_compressdev *dev,\ndiff --git a/drivers/compress/nitrox/nitrox_comp.h b/drivers/compress/nitrox/nitrox_comp.h\nindex 90e1931b05..e49debaf6b 100644\n--- a/drivers/compress/nitrox/nitrox_comp.h\n+++ b/drivers/compress/nitrox/nitrox_comp.h\n@@ -18,6 +18,7 @@\n #define NITROX_COMP_LEVEL_MEDIUM_END 6\n #define NITROX_COMP_LEVEL_BEST_START 7\n #define NITROX_COMP_LEVEL_BEST_END 9\n+#define ZIP_INSTR_SIZE 64\n \n struct nitrox_comp_device {\n \tstruct rte_compressdev *cdev;\n",
    "prefixes": [
        "v5",
        "5/7"
    ]
}