get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 138482,
    "url": "http://patches.dpdk.org/api/patches/138482/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240319114623.1137757-1-suanmingm@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": "<20240319114623.1137757-1-suanmingm@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240319114623.1137757-1-suanmingm@nvidia.com",
    "date": "2024-03-19T11:46:23",
    "name": "[v2] app/test-crypto-perf: add throughput OOP decryption",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b3057478831020550f8004cc59b18cb9bff51047",
    "submitter": {
        "id": 1887,
        "url": "http://patches.dpdk.org/api/people/1887/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@nvidia.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/20240319114623.1137757-1-suanmingm@nvidia.com/mbox/",
    "series": [
        {
            "id": 31557,
            "url": "http://patches.dpdk.org/api/series/31557/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31557",
            "date": "2024-03-19T11:46:23",
            "name": "[v2] app/test-crypto-perf: add throughput OOP decryption",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/31557/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/138482/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/138482/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 7D83D43CFA;\n\tTue, 19 Mar 2024 12:47:03 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0590E402D1;\n\tTue, 19 Mar 2024 12:47:03 +0100 (CET)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2062.outbound.protection.outlook.com [40.107.220.62])\n by mails.dpdk.org (Postfix) with ESMTP id E4E4440298\n for <dev@dpdk.org>; Tue, 19 Mar 2024 12:47:00 +0100 (CET)",
            "from BN9PR03CA0113.namprd03.prod.outlook.com (2603:10b6:408:fd::28)\n by BY5PR12MB4324.namprd12.prod.outlook.com (2603:10b6:a03:209::10)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.28; Tue, 19 Mar\n 2024 11:46:57 +0000",
            "from BN3PEPF0000B36F.namprd21.prod.outlook.com\n (2603:10b6:408:fd:cafe::31) by BN9PR03CA0113.outlook.office365.com\n (2603:10b6:408:fd::28) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.36 via Frontend\n Transport; Tue, 19 Mar 2024 11:46:57 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n BN3PEPF0000B36F.mail.protection.outlook.com (10.167.243.166) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.7430.0 via Frontend Transport; Tue, 19 Mar 2024 11:46:56 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 19 Mar\n 2024 04:46:40 -0700",
            "from nvidia.com (10.126.230.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.1258.12; Tue, 19 Mar\n 2024 04:46:38 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=kj2L+YEs9fDzNjZuqeNPku608ggSmU2s5Ts2glPcTHv0m6gkMSKtweC1nyEfBGoRnUYpsDq80xRZkZNPlVzFBmDtnzctGYGG8JrW7fpIP4/Z73iEphoM7plP+Jw4lZWzA8VKTUutNTer3lr74BFO88S6ekBPjj1GBM2LWaf0hmqxuidW3Yy2i4Be04uMQPVkyaKF72MxGwTY7uWDVI95fJewFJGHay7sMHyxcIjAvvOp51Ok34N7gG32HBUXzQ3qlllVG6LSt0FVzC++d6+BA+q7J9UenJ9kHWzmmkntfopfdk5KfjCT3/ePNkw1GjT1cynKHXYJeih56i004lBaFg==",
        "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=yMy5RtL/ZFh92MFniXm25Bn9ck8JEpl4yB2cbirJDaU=;\n b=BpARffP9GbRwlsicGVCGq1fIW2HwWoMVuNIeFiaw3Wbzf6bBAQuNbN/7bsdW3kJLrL/UYj+MfBgXj7L9DlHRopvwG3vix6weOlD4PMiS9P9X8J53K/zJ0sW5GolXw+fSNSR/W0VcPOAMmdA28FL/dDCeteqiQOtmzuh6zy4SDUA+d5EK7bWMQzfSZL+OtgEcj4jWI1hIZlw2KAStk92WA02MJdxNqNVeaWlJYXo6/U/SDuSA7nKhM48c92B5NkYpyVkrHkehFp0ipo489Ozy1k2PLToa2ImQXOlHYgOuLzMd+BWyXDtQe86DVMEiZ8Q72//NLKM4/MCt4SgacqLjeA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=marvell.com smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)",
        "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=yMy5RtL/ZFh92MFniXm25Bn9ck8JEpl4yB2cbirJDaU=;\n b=OZvwKAXxBhcCLxNodPGpB4MiWSZLgre3PrxHUByxC2Fv2kPKPYdLy1GQC6eS8KeTkrF6SAhokm/WCCYJCScJdV+gKGxICKw8iHlNme0GCuzHXmvbAi8BIuBLmHP3sIN1KqAcI6VvjaZOJCmE5b1E7FkMjPso8GOK5wNY2MyLy7JEReH1x0Bso/gAUK6WhOJg/yO4cwXARd55FWgDl2pShuELGAYTAt+Ux47Z014xdSYlGTg+QhKaLPDry98aa96aL+2Ch5qX+AHMSf6mty/lkoyOwXbwxVZQeXkelHaCsgEyX3pnRXtQWOkrpbFsUtLtnGo1AC6vPUMz4riazimGPg==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n 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 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C",
        "From": "Suanming Mou <suanmingm@nvidia.com>",
        "To": "<gakhil@marvell.com>, Ciara Power <ciara.power@intel.com>",
        "CC": "<dev@dpdk.org>",
        "Subject": "[PATCH v2] app/test-crypto-perf: add throughput OOP decryption",
        "Date": "Tue, 19 Mar 2024 19:46:23 +0800",
        "Message-ID": "<20240319114623.1137757-1-suanmingm@nvidia.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20240105100104.908543-1-suanmingm@nvidia.com>",
        "References": "<20240105100104.908543-1-suanmingm@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail201.nvidia.com (10.129.68.8) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "BN3PEPF0000B36F:EE_|BY5PR12MB4324:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "4131c2f8-5fdc-4412-1c5b-08dc480a47ce",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n ZQB7yzHZe8vHyAAFu3w3QkBTTboM3mJQJAQ+ut2Qj9sTTf6rddr2yLg9mrTMeqLOLYEDzSC5Gh24aP/5rLXFjJ8TOYvfrfHD0vjFoRYh7qGSE9I9quQv7bLS2qJ/mtFCQy17TqoLAqormRT2UOMLJo0hZCVjwPiyyp8Vg1LgBPZ6eM1onTbRrllvC1C78SyRtn6orAdigEn7A+t3RA/hKBCINfO1eSOBWw/0vSoYPl/OYpr1D7KRFrjNGgEf2NuKuoHFf/+RK2A4aDva224cQdKHxZPy+Bnd4DiB9EzfhCtepWS+6ZxM4HM5ufvxr8beVIV8CdtROK1QAuDiFzcPB8uEAk3yubnaqrZO5iV2i61UAPIKruMLZLw4fwmZlKPlgcmszAIkYXBWvFlSX44FEX0EUaRavQ+YPA49ROAE8DtGDLXNa0G/sDJAY1fbJzauzo1EJ0frQOjyrKS7L0YfXTHBh+JVwDkGZSIX8X6bPwG2j/EsjMb5XJXqjmdgGZNnFmGsPP0KVRcCWMBe5+F8kt3vzRbb/Lndl3klVPjeqfSyq+edytARiPp4YoxGAlr4asRuP2xP00Ijijv4lDkvuVXptOf+nOWn3/oj1QiJaC/26HUpXjphEfoF9jrf94zUuTpStJ87UgyoJtkfZBJF/NLIr63n+EFm2NU+ZhMRauKhg/4ohkt+o7Thie55IdZkls8gqeUkTcQn2uIWXnFgx53QnxAFB/2t7HztzDLkAHOVyL3lBcSD5xWjz351uojd",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230031)(1800799015)(82310400014)(36860700004)(376005); DIR:OUT;\n SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Mar 2024 11:46:56.9299 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 4131c2f8-5fdc-4412-1c5b-08dc480a47ce",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN3PEPF0000B36F.namprd21.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY5PR12MB4324",
        "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": "During throughput running, re-filling the test data will\nimpact the performance test result. So for now, to run\ndecrypt throughput testing is not supported since the\ntest data is not filled.\n\nBut if user requires OOP(out-of-place) mode, the test\ndata from source mbuf will never be modified, and if\nthe test data can be prepared out of the running loop,\nthe decryption test should be fine.\n\nThis commit adds the support of out-of-place decryption\ntesting for throughput.\n\n[1]:\nhttp://mails.dpdk.org/archives/dev/2023-July/273328.html\n\nSigned-off-by: Suanming Mou <suanmingm@nvidia.com>\n---\n app/test-crypto-perf/cperf_ops.c             |  5 ++-\n app/test-crypto-perf/cperf_options_parsing.c |  8 +++++\n app/test-crypto-perf/cperf_test_throughput.c | 34 +++++++++++++++++---\n 3 files changed, 41 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c\nindex d3fd115bc0..714616c697 100644\n--- a/app/test-crypto-perf/cperf_ops.c\n+++ b/app/test-crypto-perf/cperf_ops.c\n@@ -644,7 +644,10 @@ cperf_set_ops_aead(struct rte_crypto_op **ops,\n \t}\n \n \tif ((options->test == CPERF_TEST_TYPE_VERIFY) ||\n-\t\t\t(options->test == CPERF_TEST_TYPE_LATENCY)) {\n+\t    (options->test == CPERF_TEST_TYPE_LATENCY) ||\n+\t    (options->test == CPERF_TEST_TYPE_THROUGHPUT &&\n+\t     (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT ||\n+\t      options->cipher_op == RTE_CRYPTO_CIPHER_OP_DECRYPT))) {\n \t\tfor (i = 0; i < nb_ops; i++) {\n \t\t\tuint8_t *iv_ptr = rte_crypto_op_ctod_offset(ops[i],\n \t\t\t\t\tuint8_t *, iv_offset);\ndiff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c\nindex 8c20974273..90526e676f 100644\n--- a/app/test-crypto-perf/cperf_options_parsing.c\n+++ b/app/test-crypto-perf/cperf_options_parsing.c\n@@ -1341,6 +1341,14 @@ cperf_options_check(struct cperf_options *options)\n \t\t}\n \t}\n \n+\tif (options->test == CPERF_TEST_TYPE_THROUGHPUT &&\n+\t    (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT ||\n+\t     options->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY) &&\n+\t    !options->out_of_place) {\n+\t\tRTE_LOG(ERR, USER1, \"Only out-of-place is allowed in throughput decryption.\\n\");\n+\t\treturn -EINVAL;\n+\t}\n+\n \tif (options->op_type == CPERF_CIPHER_ONLY ||\n \t\t\toptions->op_type == CPERF_CIPHER_THEN_AUTH ||\n \t\t\toptions->op_type == CPERF_AUTH_THEN_CIPHER) {\ndiff --git a/app/test-crypto-perf/cperf_test_throughput.c b/app/test-crypto-perf/cperf_test_throughput.c\nindex e3d266d7a4..b347baa913 100644\n--- a/app/test-crypto-perf/cperf_test_throughput.c\n+++ b/app/test-crypto-perf/cperf_test_throughput.c\n@@ -99,6 +99,26 @@ cperf_throughput_test_constructor(struct rte_mempool *sess_mp,\n \treturn NULL;\n }\n \n+static void\n+cperf_verify_init_ops(struct rte_mempool *mp __rte_unused,\n+\t\t      void *opaque_arg,\n+\t\t      void *obj,\n+\t\t      __rte_unused unsigned int i)\n+{\n+\tuint16_t iv_offset = sizeof(struct rte_crypto_op) +\n+\t\tsizeof(struct rte_crypto_sym_op);\n+\tuint32_t imix_idx = 0;\n+\tstruct cperf_throughput_ctx *ctx = opaque_arg;\n+\tstruct rte_crypto_op *op = obj;\n+\n+\t(ctx->populate_ops)(&op, ctx->src_buf_offset,\n+\t\t\tctx->dst_buf_offset,\n+\t\t\t1, ctx->sess, ctx->options,\n+\t\t\tctx->test_vector, iv_offset, &imix_idx, NULL);\n+\n+\tcperf_mbuf_set(op->sym->m_src, ctx->options, ctx->test_vector);\n+}\n+\n int\n cperf_throughput_test_runner(void *test_ctx)\n {\n@@ -144,6 +164,9 @@ cperf_throughput_test_runner(void *test_ctx)\n \tuint16_t iv_offset = sizeof(struct rte_crypto_op) +\n \t\tsizeof(struct rte_crypto_sym_op);\n \n+\tif (ctx->options->out_of_place)\n+\t\trte_mempool_obj_iter(ctx->pool, cperf_verify_init_ops, (void *)ctx);\n+\n \twhile (test_burst_size <= ctx->options->max_burst_size) {\n \t\tuint64_t ops_enqd = 0, ops_enqd_total = 0, ops_enqd_failed = 0;\n \t\tuint64_t ops_deqd = 0, ops_deqd_total = 0, ops_deqd_failed = 0;\n@@ -176,11 +199,12 @@ cperf_throughput_test_runner(void *test_ctx)\n \t\t\t}\n \n \t\t\t/* Setup crypto op, attach mbuf etc */\n-\t\t\t(ctx->populate_ops)(ops, ctx->src_buf_offset,\n-\t\t\t\t\tctx->dst_buf_offset,\n-\t\t\t\t\tops_needed, ctx->sess,\n-\t\t\t\t\tctx->options, ctx->test_vector,\n-\t\t\t\t\tiv_offset, &imix_idx, &tsc_start);\n+\t\t\tif (!ctx->options->out_of_place)\n+\t\t\t\t(ctx->populate_ops)(ops, ctx->src_buf_offset,\n+\t\t\t\t\t\tctx->dst_buf_offset,\n+\t\t\t\t\t\tops_needed, ctx->sess,\n+\t\t\t\t\t\tctx->options, ctx->test_vector,\n+\t\t\t\t\t\tiv_offset, &imix_idx, &tsc_start);\n \n \t\t\t/**\n \t\t\t * When ops_needed is smaller than ops_enqd, the\n",
    "prefixes": [
        "v2"
    ]
}