get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 137369,
    "url": "http://patches.dpdk.org/api/patches/137369/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240227183555.3932711-4-amitprakashs@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": "<20240227183555.3932711-4-amitprakashs@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240227183555.3932711-4-amitprakashs@marvell.com",
    "date": "2024-02-27T18:35:54",
    "name": "[v10,3/4] app/dma-perf: validate copied memory",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "abbca55f5da7abe970c27f32402703ebf3add189",
    "submitter": {
        "id": 2699,
        "url": "http://patches.dpdk.org/api/people/2699/?format=api",
        "name": "Amit Prakash Shukla",
        "email": "amitprakashs@marvell.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20240227183555.3932711-4-amitprakashs@marvell.com/mbox/",
    "series": [
        {
            "id": 31255,
            "url": "http://patches.dpdk.org/api/series/31255/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31255",
            "date": "2024-02-27T18:35:51",
            "name": "PCI Dev and SG copy support",
            "version": 10,
            "mbox": "http://patches.dpdk.org/series/31255/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/137369/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/137369/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 26F0043C06;\n\tTue, 27 Feb 2024 19:40:31 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0221440279;\n\tTue, 27 Feb 2024 19:40:31 +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 92EB440150\n for <dev@dpdk.org>; Tue, 27 Feb 2024 19:40:28 +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 41RFgq13005654; Tue, 27 Feb 2024 10:40:28 -0800",
            "from dc5-exch05.marvell.com ([199.233.59.128])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3whjm690kf-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Tue, 27 Feb 2024 10:40:27 -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; Tue, 27 Feb 2024 10:40:26 -0800",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH05.marvell.com\n (10.69.176.209) with Microsoft SMTP Server id 15.2.1258.12 via Frontend\n Transport; Tue, 27 Feb 2024 10:40:26 -0800",
            "from cavium-OptiPlex-5090-BM14.. (unknown [10.28.36.157])\n by maili.marvell.com (Postfix) with ESMTP id 71B663F70DE;\n Tue, 27 Feb 2024 10:40:23 -0800 (PST)"
        ],
        "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=JVWgL8psaPxL5HGtThqn1i9VQilfFbZGx2Kjs5aCMXw=; b=DsN\n qHA5t+4+/BW1pVjnkdChSHaSr2KJc/1b00DWfYaF9qFkEMe+I9CdxuVUNVCl/ysP\n 39Jzx/i7wwXXemN57oZJApCcEk/lPLxqpoIw4jqmYBf5D3u6T2vN0dCJF254edJy\n JVcC0qnQ5pQa7p8zMP3GH+5UPxXNKSyFFr/dZrTIyHdcd4GU9N04CfuDegrdBhhN\n RoMst5rpR/NZRqeuAC4tQcz6IJwioYrGZihBOrVCvREAoPDeE7s2b4VqnnRJQVuj\n Bzj4RpHrqmqjdaCtBmBCXUJu9b4vwb0aFuxDqXAc1yS92DnRVahvC0STv4/20neN\n yUQUxKKyT5t5a5sLVnw==",
        "From": "Amit Prakash Shukla <amitprakashs@marvell.com>",
        "To": "Cheng Jiang <honest.jiang@foxmail.com>, Chengwen Feng\n <fengchengwen@huawei.com>",
        "CC": "<dev@dpdk.org>, <jerinj@marvell.com>, <anoobj@marvell.com>, Kevin Laatz\n <kevin.laatz@intel.com>, Bruce Richardson <bruce.richardson@intel.com>,\n \"Pavan Nikhilesh\" <pbhagavatula@marvell.com>, Gowrishankar Muthukrishnan\n <gmuthukrishn@marvell.com>",
        "Subject": "[PATCH v10 3/4] app/dma-perf: validate copied memory",
        "Date": "Wed, 28 Feb 2024 00:05:54 +0530",
        "Message-ID": "<20240227183555.3932711-4-amitprakashs@marvell.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20240227183555.3932711-1-amitprakashs@marvell.com>",
        "References": "<20240227160031.3931694-1-amitprakashs@marvell.com>\n <20240227183555.3932711-1-amitprakashs@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "AjV3awHGkiIl77waXaD_4re_laOQ7Jqr",
        "X-Proofpoint-GUID": "AjV3awHGkiIl77waXaD_4re_laOQ7Jqr",
        "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-02-27_05,2024-02-27_01,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": "From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>\n\nValidate copied memory to ensure DMA copy did not fail.\n\nSigned-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>\nAcked-by: Anoob Joseph <anoobj@marvell.com>\nAcked-by: Chengwen Feng <fengchengwen@huawei.com>\n---\n app/test-dma-perf/benchmark.c | 21 ++++++++++++++++++++-\n app/test-dma-perf/main.c      | 16 +++++++++++-----\n app/test-dma-perf/main.h      |  2 +-\n 3 files changed, 32 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/app/test-dma-perf/benchmark.c b/app/test-dma-perf/benchmark.c\nindex 4370d71134..0047e2f4b8 100644\n--- a/app/test-dma-perf/benchmark.c\n+++ b/app/test-dma-perf/benchmark.c\n@@ -12,6 +12,7 @@\n #include <rte_dmadev.h>\n #include <rte_malloc.h>\n #include <rte_lcore.h>\n+#include <rte_random.h>\n \n #include \"main.h\"\n \n@@ -407,6 +408,11 @@ setup_memory_env(struct test_configure *cfg, struct rte_mbuf ***srcs,\n \t\treturn -1;\n \t}\n \n+\tfor (i = 0; i < nr_buf; i++) {\n+\t\tmemset(rte_pktmbuf_mtod((*srcs)[i], void *), rte_rand(), buf_size);\n+\t\tmemset(rte_pktmbuf_mtod((*dsts)[i], void *), 0, buf_size);\n+\t}\n+\n \tif (cfg->transfer_dir == RTE_DMA_DIR_DEV_TO_MEM ||\n \t    cfg->transfer_dir == RTE_DMA_DIR_MEM_TO_DEV) {\n \t\text_buf_info = rte_malloc(NULL, sizeof(struct rte_mbuf_ext_shared_info), 0);\n@@ -443,7 +449,7 @@ setup_memory_env(struct test_configure *cfg, struct rte_mbuf ***srcs,\n \treturn 0;\n }\n \n-void\n+int\n mem_copy_benchmark(struct test_configure *cfg, bool is_dma)\n {\n \tuint32_t i;\n@@ -461,6 +467,7 @@ mem_copy_benchmark(struct test_configure *cfg, bool is_dma)\n \tuint32_t avg_cycles_total;\n \tfloat mops, mops_total;\n \tfloat bandwidth, bandwidth_total;\n+\tint ret = 0;\n \n \tif (setup_memory_env(cfg, &srcs, &dsts) < 0)\n \t\tgoto out;\n@@ -534,6 +541,16 @@ mem_copy_benchmark(struct test_configure *cfg, bool is_dma)\n \n \trte_eal_mp_wait_lcore();\n \n+\tfor (i = 0; i < (nr_buf / nb_workers) * nb_workers; i++) {\n+\t\tif (memcmp(rte_pktmbuf_mtod(srcs[i], void *),\n+\t\t\t   rte_pktmbuf_mtod(dsts[i], void *),\n+\t\t\t   cfg->buf_size.cur) != 0) {\n+\t\t\tprintf(\"Copy validation fails for buffer number %d\\n\", i);\n+\t\t\tret = -1;\n+\t\t\tgoto out;\n+\t\t}\n+\t}\n+\n \tmops_total = 0;\n \tbandwidth_total = 0;\n \tavg_cycles_total = 0;\n@@ -599,4 +616,6 @@ mem_copy_benchmark(struct test_configure *cfg, bool is_dma)\n \t\t\trte_dma_stop(ldm->dma_ids[i]);\n \t\t}\n \t}\n+\n+\treturn ret;\n }\ndiff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c\nindex 051f76a6f9..df05bcd7df 100644\n--- a/app/test-dma-perf/main.c\n+++ b/app/test-dma-perf/main.c\n@@ -101,20 +101,24 @@ open_output_csv(const char *rst_path_ptr)\n \treturn 0;\n }\n \n-static void\n+static int\n run_test_case(struct test_configure *case_cfg)\n {\n+\tint ret = 0;\n+\n \tswitch (case_cfg->test_type) {\n \tcase TEST_TYPE_DMA_MEM_COPY:\n-\t\tmem_copy_benchmark(case_cfg, true);\n+\t\tret = mem_copy_benchmark(case_cfg, true);\n \t\tbreak;\n \tcase TEST_TYPE_CPU_MEM_COPY:\n-\t\tmem_copy_benchmark(case_cfg, false);\n+\t\tret = mem_copy_benchmark(case_cfg, false);\n \t\tbreak;\n \tdefault:\n \t\tprintf(\"Unknown test type. %s\\n\", case_cfg->test_type_str);\n \t\tbreak;\n \t}\n+\n+\treturn ret;\n }\n \n static void\n@@ -159,8 +163,10 @@ run_test(uint32_t case_id, struct test_configure *case_cfg)\n \t\tcase_cfg->scenario_id++;\n \t\tprintf(\"\\nRunning scenario %d\\n\", case_cfg->scenario_id);\n \n-\t\trun_test_case(case_cfg);\n-\t\toutput_csv(false);\n+\t\tif (run_test_case(case_cfg) < 0)\n+\t\t\tprintf(\"\\nTest fails! skipping this scenario.\\n\");\n+\t\telse\n+\t\t\toutput_csv(false);\n \n \t\tif (var_entry->op == OP_ADD)\n \t\t\tvar_entry->cur += var_entry->incr;\ndiff --git a/app/test-dma-perf/main.h b/app/test-dma-perf/main.h\nindex 745c24b7fe..1123e7524a 100644\n--- a/app/test-dma-perf/main.h\n+++ b/app/test-dma-perf/main.h\n@@ -66,6 +66,6 @@ struct test_configure {\n \tstruct test_vchan_dev_config vchan_dev;\n };\n \n-void mem_copy_benchmark(struct test_configure *cfg, bool is_dma);\n+int mem_copy_benchmark(struct test_configure *cfg, bool is_dma);\n \n #endif /* MAIN_H */\n",
    "prefixes": [
        "v10",
        "3/4"
    ]
}