get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 108626,
    "url": "http://patches.dpdk.org/api/patches/108626/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220309234152.1063100-1-ggribbon@nvidia.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": "<20220309234152.1063100-1-ggribbon@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220309234152.1063100-1-ggribbon@nvidia.com",
    "date": "2022-03-09T23:41:52",
    "name": "app/test-regex: fix incorrect number of matches",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e00e499bebda1d65cee2bff41eca277d32eff388",
    "submitter": {
        "id": 2549,
        "url": "http://patches.dpdk.org/api/people/2549/?format=api",
        "name": "Gerry Gribbon",
        "email": "ggribbon@nvidia.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/20220309234152.1063100-1-ggribbon@nvidia.com/mbox/",
    "series": [
        {
            "id": 22089,
            "url": "http://patches.dpdk.org/api/series/22089/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22089",
            "date": "2022-03-09T23:41:52",
            "name": "app/test-regex: fix incorrect number of matches",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/22089/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/108626/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/108626/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 3F78FA0093;\n\tThu, 10 Mar 2022 00:42:39 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BBEB140687;\n\tThu, 10 Mar 2022 00:42:38 +0100 (CET)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2047.outbound.protection.outlook.com [40.107.237.47])\n by mails.dpdk.org (Postfix) with ESMTP id 4BCFB4067C;\n Thu, 10 Mar 2022 00:42:37 +0100 (CET)",
            "from MWHPR14CA0072.namprd14.prod.outlook.com (2603:10b6:300:81::34)\n by DM6PR12MB4402.namprd12.prod.outlook.com (2603:10b6:5:2a5::18) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.29; Wed, 9 Mar\n 2022 23:42:34 +0000",
            "from CO1NAM11FT056.eop-nam11.prod.protection.outlook.com\n (2603:10b6:300:81:cafe::61) by MWHPR14CA0072.outlook.office365.com\n (2603:10b6:300:81::34) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.20 via Frontend\n Transport; Wed, 9 Mar 2022 23:42:34 +0000",
            "from mail.nvidia.com (12.22.5.234) by\n CO1NAM11FT056.mail.protection.outlook.com (10.13.175.107) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.5038.14 via Frontend Transport; Wed, 9 Mar 2022 23:42:34 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL101.nvidia.com\n (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Wed, 9 Mar 2022 23:42:33 +0000",
            "from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9; Wed, 9 Mar 2022\n 15:42:31 -0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=CRg24k2DYhFSlMIAF6pXs9Xp1AJWN3d6SILy5BUzpRz4BeGJL15O6vQL3PatkiSddGOFeRuHjmXWi2Sdgwn2bT8IX/RotFLOZNux2hUfT81z40WfG608+jhBMdWqLWD3F7j5A3nxov6NIQxvNBRZF7QAv4hNwMOOqy2ZsZ/HO1JAb/EVwA3Pxcjet+5/yY3afXqzDODiH+IrIjlFIP27B1Yr6yERuV2h26CWALDsF0DfF/HEmpH+hMVXo0+HzaVpy6m0A9BPDGbfWHwWiCcaTbhmi4NMy68v81SwLhmTFQEbZhaFnisnY+KZhLndoJJCsftYOMflT2D2xUP646+n3w==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=12X4SqvIfj2OczXkH0lzS74POOVzf00u1MvhCm/vuc0=;\n b=dxCsFuDkJkZ8/0Bnmm0ezDKrFxEpqjCH2jevONeFbeoFzwuBi9/lRH2zmC8OIjo9tnBx6C+Np6O5Q5nSVry7iL/FXIacf/TruR1mLuwacbzsYAYK92ykyy6d3oKuYZsjlgHYrJ9QTxEHG/3ngJNgOvPvS84grpA3/9PS7r0B13Eh4HzEehOA+QeB9C9PH5TGN5qIANJG0LX9DrZbyVaG3zwDh7QBKtvEweKqv+BgAxAdOaWkAKw/1S1nTMrkc7NjfKG8hmKwovNdGkk3LjX5kcumkUQn4dt3LlqWegXDLF2h2ILyscuiIojmAtcwdguvsWXev0Ujy4VdFUYSbevjZg==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.234) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass\n (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none\n (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=12X4SqvIfj2OczXkH0lzS74POOVzf00u1MvhCm/vuc0=;\n b=lDVmV/sRprvPcqipnxvbJa3iQN3c0IYX5o06S4hKdGNWHKgyoJ1B7B8V4rzLsq6WGkfYw/5ven+JLnVAXF30rTY36dfXP/wsSWo0v2tW+k6i6Y8S74Y6ZFckvnthwZ4y0cNVJ1iPPBg9V31qhL+95ddvSAxs8/gUbMT4ssHZUlsL9+e1iR2xjDGoc86TsCkWHkSNaHmfmzmp7oIrpJWVO5aPPPIxZq0ZEjVKD9KouDydp7wBLAU2MCd5gbU2wyPdQEkioUxqsRkCJJa+x8g4XxfzOWegf6sLgJ8eh7ywt+jCtz2Ta8tEORCs4pscwrdVZDn9T40xAicS4LgZjWNZ7g==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.234)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 12.22.5.234 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.234; helo=mail.nvidia.com;",
        "From": "Gerry Gribbon <ggribbon@nvidia.com>",
        "To": "<orika@nvidia.com>",
        "CC": "<dev@dpdk.org>, <yuvalav@mellanox.com>, <stable@dpdk.org>",
        "Subject": "[PATCH] app/test-regex: fix incorrect number of matches",
        "Date": "Wed, 9 Mar 2022 23:41:52 +0000",
        "Message-ID": "<20220309234152.1063100-1-ggribbon@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.231.35]",
        "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "e3c240e8-780d-4a3c-d430-08da02267c3b",
        "X-MS-TrafficTypeDiagnostic": "DM6PR12MB4402:EE_",
        "X-Microsoft-Antispam-PRVS": "\n <DM6PR12MB440223F669159841ABA5C395B20A9@DM6PR12MB4402.namprd12.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n PvWyq51KHlyEcx/dxwD7g2G8+CHtBM5APPruLj5YoBovGov3roD5bCtsQP/wXrjnTUCGIPTjiQZ+d2hc7Ims7xzbEgICcee19AQ6ivqvA12mHRdlrMIA902zzDONcRfoljq8Py9Y/saZqE9UlUbKqiZm021R+LRdoD2Fj3hVq8l0ub8tKzq1fkcZ5D8SYEFE8ko1O+C9Fqkf9NX3P9sKVEK47eRqxwU5BpboYTQvZP1W4KnwZZOU/EshI5LKJxhEsj7mkaUu4+SVjHOPg8Bu6hb8Z3jyYOeSefWfs4/RXgeIKp/obyO3z1LyYO0PWu05Rzex9tMu4XAsF3WLcfryIN9UZnNImHWzZnS87cP7zXagcc4eq9l6UVnvmIZeUfJXyFGZHhmhP297okj9/rppcGS75UmZlMZkgnMzd4E6MnsuU2W8y3IX9Ockp5/NAufp3bApjGIp1giRYqmps4qrhLAEGfEEsLSV7T1iAzMt7f1q/BHUr3mXe9fecu/bZcTTrTMhcNPx2A3dWLimCJrA1oN7i43AGTE5hmqwQBgkNesKMeek4bZli6dxVjGZnM6O/1Lee6VbPDaPDCmENXAdGgbB+z6GEkY80eQ8w7woBggylKzFxKB7YAmZUZ2XXE16MKmqtHVHpZuFO2n1uMGLDr0S7ia84FPkIejOIT7ahgLJV8vlVNEpCE8MxfBQiE6meGpMuJjZJGai5dbPZY+Ynw==",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.234; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(4326008)(55016003)(6286002)(36860700001)(40460700003)(6862004)(426003)(186003)(336012)(2906002)(37006003)(86362001)(7696005)(54906003)(26005)(508600001)(36756003)(16526019)(316002)(47076005)(1076003)(356005)(81166007)(8936002)(2616005)(5660300002)(70586007)(450100002)(8676002)(70206006)(6636002)(83380400001)(82310400004)(6666004)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Mar 2022 23:42:34.1561 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e3c240e8-780d-4a3c-d430-08da02267c3b",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.234];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT056.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR12MB4402",
        "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": "Depending on number of jobs specified on command line, part of the\ndata buffer may not get searched, resulting in incorrect number of\nmatches being reported.\n\nAdditional change to ensure the \"All Matches\" summary outputs the\ncorrect match start locations in the supplied data buffer.\n\nFixes: de06137cb295 (\"app/regex: add RegEx test application\")\nCc: yuvalav@mellanox.com\nCc: stable@dpdk.org\n\nSigned-off-by: Gerry Gribbon <ggribbon@nvidia.com>\nAcked-by: Ori Kam <orika@nvidia.com>\n---\n app/test-regex/main.c | 38 ++++++++++++++++++++++++++++----------\n 1 file changed, 28 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/app/test-regex/main.c b/app/test-regex/main.c\nindex ab8a3e56e7..7c014b2210 100644\n--- a/app/test-regex/main.c\n+++ b/app/test-regex/main.c\n@@ -382,10 +382,13 @@ run_regex(void *args)\n \tchar *data_buf = rgxc->data_buf;\n \tlong data_len = rgxc->data_len;\n \tlong job_len = rgxc->job_len;\n-\n+\tlong remainder;\n+\tlong act_job_len = 0;\n+\tbool last_job = false;\n \tchar *buf = NULL;\n \tuint32_t actual_jobs = 0;\n \tuint32_t i;\n+\tuint32_t job_id;\n \tuint16_t qp_id;\n \tuint16_t dev_id = 0;\n \tuint8_t nb_matches;\n@@ -456,9 +459,16 @@ run_regex(void *args)\n \t\t/* Assign each mbuf with the data to handle. */\n \t\tactual_jobs = 0;\n \t\tpos = 0;\n+\t\tremainder = data_len % nb_jobs;\n+\n \t\t/* Allocate the jobs and assign each job with an mbuf. */\n \t\tfor (i = 0; (pos < data_len) && (i < nb_jobs) ; i++) {\n-\t\t\tlong act_job_len = RTE_MIN(job_len, data_len - pos);\n+\t\t\tact_job_len = RTE_MIN(job_len, data_len - pos);\n+\n+\t\t\tif (i == (nb_jobs - 1)) {\n+\t\t\t\tlast_job = true;\n+\t\t\t\tact_job_len += remainder;\n+\t\t\t}\n \n \t\t\tops[i] = rte_malloc(NULL, sizeof(*ops[0]) +\n \t\t\t\t\tnb_max_matches *\n@@ -478,7 +488,12 @@ run_regex(void *args)\n \t\t\t\tif (ops[i]->mbuf) {\n \t\t\t\t\trte_pktmbuf_attach_extbuf(ops[i]->mbuf,\n \t\t\t\t\t&buf[pos], 0, act_job_len, &shinfo);\n-\t\t\t\t\tops[i]->mbuf->data_len = job_len;\n+\n+\t\t\t\t\tif (!last_job)\n+\t\t\t\t\t\tops[i]->mbuf->data_len = job_len;\n+\t\t\t\t\telse\n+\t\t\t\t\t\tops[i]->mbuf->data_len = act_job_len;\n+\n \t\t\t\t\tops[i]->mbuf->pkt_len = act_job_len;\n \t\t\t\t}\n \t\t\t}\n@@ -506,6 +521,9 @@ run_regex(void *args)\n \t\t\tqp = &qps[qp_id];\n \t\t\tqp->total_enqueue = 0;\n \t\t\tqp->total_dequeue = 0;\n+\t\t\t/* Re-set user id after dequeue to match data in mbuf. */\n+\t\t\tfor (job_id = 0 ; job_id < nb_jobs; job_id++)\n+\t\t\t\tqp->ops[job_id]->user_id = job_id;\n \t\t}\n \t\tdo {\n \t\t\tupdate = false;\n@@ -551,10 +569,10 @@ run_regex(void *args)\n \tfor (qp_id = 0; qp_id < nb_qps; qp_id++) {\n \t\tqp = &qps[qp_id];\n \t\ttime = (long double)qp->cycles / rte_get_timer_hz();\n-\t\tprintf(\"Core=%u QP=%u Job=%ld Bytes Time=%Lf sec Perf=%Lf \"\n+\t\tprintf(\"Core=%u QP=%u Job=%ld Bytes Last Job=%ld Bytes Time=%Lf sec Perf=%Lf \"\n \t\t       \"Gbps\\n\", rte_lcore_id(), qp_id + qp_id_base,\n-\t\t       job_len, time,\n-\t\t       (((double)actual_jobs * job_len * nb_iterations * 8)\n+\t\t       job_len, act_job_len, time,\n+\t\t       (((double)data_len * nb_iterations * 8)\n \t\t       / time) / 1000000000.0);\n \t}\n \n@@ -587,10 +605,10 @@ run_regex(void *args)\n \t\t\tqp->total_matches += nb_matches;\n \t\t\tmatch = qp->ops[d_ind % actual_jobs]->matches;\n \t\t\tfor (i = 0; i < nb_matches; i++) {\n-\t\t\t\tprintf(\"start = %ld, len = %d, rule = %d\\n\",\n-\t\t\t\t\t\tmatch->start_offset +\n-\t\t\t\t\t\td_ind * job_len,\n-\t\t\t\t\t\tmatch->len, match->rule_id);\n+\t\t\t\tprintf(\"start = %d, len = %d, rule = %d\\n\",\n+\t\t\t\t\tmatch->start_offset +\n+\t\t\t\t\t(int)(qp->ops[d_ind % actual_jobs]->user_id * job_len),\n+\t\t\t\t\tmatch->len, match->rule_id);\n \t\t\t\tmatch++;\n \t\t\t}\n \t\t}\n",
    "prefixes": []
}