From patchwork Fri Jan 5 10:01:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suanming Mou X-Patchwork-Id: 135751 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 6A6034383B; Fri, 5 Jan 2024 11:01:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DCA1A402BF; Fri, 5 Jan 2024 11:01:43 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2044.outbound.protection.outlook.com [40.107.244.44]) by mails.dpdk.org (Postfix) with ESMTP id 835B4402AC for ; Fri, 5 Jan 2024 11:01:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SCE+Iu8WZ8Zlf8l5Xvu1N925wcC8fd2pFEVJ/VV5lYGgCgJfiyL9/op8iuU4nqthDl/tN3blB/4s8u69F7X7wyGp0rs+CL3ApV+fiTkDMY2dG6IZsk/fPyBvNsdSqTvH8JNT9ksrZxOO5CyYtBu3x96QWVZkzsLL3dunUN2KZyAKFid9VTZVPiO3jjPwwK4Q+XBiUk84iYye28K+WlFsr+HZOJ4qIsV51D4xySxFO9o5pcBJv0f1XUo1AniGov5kco8zd9ytuxc7Ab8WY33tzMvep4xM0gnXcv7IffhHie/8yBwPdKiSys7yaI7XbM+bkIJyfh7IWxOWJo4Iw1gFFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=ia7jTnbTmv29+OwGUSM6T0aXoWFUSpfswdpm7sSxeQA=; b=lh/Q26vAdQL0IyTOCPTUHYj53qf0tZLJnUNaQz4sLKhuhsu3+1NMqzwiYSHuqVfdCF2DQIbjnl2tzsbMKrmYgGXLxyAKi1bSJOoBM944U3TymnJjF2zZzAez3qw8RUekBNsNeqNy+A6BUbep/Yi5p4WLPuIxbM6mh3FfgORQQqmfFMYAVSG9cc5u5i8QkX2zi+NCybg2+5Tqw0jsvngbq14JoZbap/mEsbPS0onq2wh/G+5CfrcbpC9NmrP+NJmB4x7r8i5PP99SBym55H/6eio12sP9Al1K5603vVHz+D3CtinTouGkKbjxW48feC2NcVwJHGT8C7d+TM2Ba4Gunw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=marvell.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ia7jTnbTmv29+OwGUSM6T0aXoWFUSpfswdpm7sSxeQA=; b=FDulOvOxZiOo37V+mTUv/aUFB/07vJ7imEuL0gFAYtipuh0IFxlVw9r9nMji6b/9PNSVYzQTMP9aZ+DIeyAxAtJfpkNAd6tQ6WDQe9lLHEgVZuiG6xuvj3JY6fly+H7/qMddxO3NqLJ4Vq35Bp9TSfEx2gRdsZz6AG6Auz79lo3MjBGMBGtPq6fmyxQHf+RfqauFSEO+bicMTKMaImiAeJFF/lPSjUv28VBEiT04/qYri0X7W1U0fVqQHbfQhDp8ijbwAf5CyQnC3LvJT6w2wGtegW3FSAYFFfDM4M3SMYeSUNcYrSkfvUrT3jR6lkl6v0wNeTUGwnjQIRFaMG/2PA== Received: from DM6PR13CA0050.namprd13.prod.outlook.com (2603:10b6:5:134::27) by DS7PR12MB8346.namprd12.prod.outlook.com (2603:10b6:8:e5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.15; Fri, 5 Jan 2024 10:01:38 +0000 Received: from CY4PEPF0000EDD4.namprd03.prod.outlook.com (2603:10b6:5:134:cafe::4f) by DM6PR13CA0050.outlook.office365.com (2603:10b6:5:134::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13 via Frontend Transport; Fri, 5 Jan 2024 10:01:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CY4PEPF0000EDD4.mail.protection.outlook.com (10.167.241.208) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.9 via Frontend Transport; Fri, 5 Jan 2024 10:01:37 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Fri, 5 Jan 2024 02:01:21 -0800 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Fri, 5 Jan 2024 02:01:19 -0800 From: Suanming Mou To: , CC: Subject: [PATCH] app/test-crypto-perf: add throughput OOP decryption Date: Fri, 5 Jan 2024 18:01:04 +0800 Message-ID: <20240105100104.908543-1-suanmingm@nvidia.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD4:EE_|DS7PR12MB8346:EE_ X-MS-Office365-Filtering-Correlation-Id: 7182603f-9137-4794-dd2d-08dc0dd54e8d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2MQqHkpDVJRLqe1xNUYVU+QNjW4PY6N9beolG8Gz0Zi/I2ZmdLOERLqj2Gb9EEp1xgxBvgTKbeSIMfvtNBwzmoM4MlRLhX+Fw1wilk3RMpcRDhWztFGnBILL9v8m9q7DkmofS6PDcOLAeCiciX/sRL9ADCbrk/p6QC37tCfwGuJL8cGKY6PaoQmpyrMp8D+AJVFUxEFHPr+hwi99QPm8iMeRBLIgjqt1dyOSobTJMUw5anUvRhwu/aagT04ELWcr2PXFM7dLy0gy1CkRAvhqblRRElfQtxdzDj/ITsOv2dI48Uw031KLJpSowj7ShiHZgyAVHbolj4uRfD4cgAI0Utgi2GDBAzPyeD1LezhfyFkIADreoWNTyoOxE7aDA92zBnodscH74NqSMph9BSCQnsTNWm4XjrfOW0HQ2N8TajB0bJPZIXW2QYcPzbTC5QQHQkZLFOXTOWycnrm1oJhqvjiFl1oHBpyfOIJH4EcAth9mELg5d/iuCCfgnxfnvEVUI+5tz9NNvo+WQVUy/X4yZv/VmymtpjbWNNoenkaCr7McVBh9ACUSVbB9GHKD3F+2ieGreIUdv43UFz9905qrEad2g3U3MTZun4kSHgnwhQo++zZDWLQhDsE21YBN9jcFolFS4UbNaGQ6QrdBA2Kk254Lc/+++15J1KrsUHVWwaMTS2DuWkbfbgBMRwcp8tprwz91tmkFjy4Z8EELExh6jjfWALYFHJFMjrWgw0iF7l69NypkglyXlt2jk6xslDyr9mbTb/XyX0wB6XdBU3WwED0/+0k/z1j/+GQKatPVfOc= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(346002)(39860400002)(136003)(396003)(376002)(230922051799003)(82310400011)(451199024)(64100799003)(1800799012)(186009)(46966006)(36840700001)(40470700004)(40460700003)(40480700001)(55016003)(2616005)(336012)(1076003)(426003)(7696005)(6666004)(966005)(478600001)(26005)(86362001)(36860700001)(82740400003)(7636003)(36756003)(356005)(16526019)(2906002)(41300700001)(6286002)(83380400001)(47076005)(5660300002)(70586007)(8676002)(110136005)(316002)(70206006)(4326008)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 10:01:37.5476 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7182603f-9137-4794-dd2d-08dc0dd54e8d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EDD4.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8346 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org During throughput running, re-filling the test data will impact the performance test result. So for now, to run decrypt throughput testing is not supported since the test data is not filled. But if user requires OOP(out-of-place) mode, the test data from source mbuf will never be modified, and if the test data can be prepared out of the running loop, the decryption test should be fine. This commit adds the support of out-of-place decryption testing for throughput. [1]: http://mails.dpdk.org/archives/dev/2023-July/273328.html Signed-off-by: Suanming Mou --- app/test-crypto-perf/cperf_ops.c | 5 ++- app/test-crypto-perf/cperf_options_parsing.c | 8 +++++ app/test-crypto-perf/cperf_test_throughput.c | 37 +++++++++++++++++--- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c index 84945d1313..1d57b78c2b 100644 --- a/app/test-crypto-perf/cperf_ops.c +++ b/app/test-crypto-perf/cperf_ops.c @@ -608,7 +608,10 @@ cperf_set_ops_aead(struct rte_crypto_op **ops, } if ((options->test == CPERF_TEST_TYPE_VERIFY) || - (options->test == CPERF_TEST_TYPE_LATENCY)) { + (options->test == CPERF_TEST_TYPE_LATENCY) || + (options->test == CPERF_TEST_TYPE_THROUGHPUT && + (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT || + options->cipher_op == RTE_CRYPTO_CIPHER_OP_DECRYPT))) { for (i = 0; i < nb_ops; i++) { uint8_t *iv_ptr = rte_crypto_op_ctod_offset(ops[i], uint8_t *, iv_offset); diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c index 75afedc7fd..6caca44371 100644 --- a/app/test-crypto-perf/cperf_options_parsing.c +++ b/app/test-crypto-perf/cperf_options_parsing.c @@ -1291,6 +1291,14 @@ cperf_options_check(struct cperf_options *options) } } + if (options->test == CPERF_TEST_TYPE_THROUGHPUT && + (options->aead_op == RTE_CRYPTO_AEAD_OP_DECRYPT || + options->cipher_op == RTE_CRYPTO_CIPHER_OP_DECRYPT) && + !options->out_of_place) { + RTE_LOG(ERR, USER1, "Only out-of-place is allowed in throughput decryption.\n"); + return -EINVAL; + } + if (options->op_type == CPERF_CIPHER_ONLY || options->op_type == CPERF_CIPHER_THEN_AUTH || options->op_type == CPERF_AUTH_THEN_CIPHER) { diff --git a/app/test-crypto-perf/cperf_test_throughput.c b/app/test-crypto-perf/cperf_test_throughput.c index f8f8bd717f..eab25ec863 100644 --- a/app/test-crypto-perf/cperf_test_throughput.c +++ b/app/test-crypto-perf/cperf_test_throughput.c @@ -98,6 +98,29 @@ cperf_throughput_test_constructor(struct rte_mempool *sess_mp, return NULL; } +static void +cperf_verify_init_ops(struct rte_mempool *mp __rte_unused, + void *opaque_arg, + void *obj, + __rte_unused unsigned int i) +{ + uint16_t iv_offset = sizeof(struct rte_crypto_op) + + sizeof(struct rte_crypto_sym_op); + uint32_t imix_idx = 0; + struct cperf_throughput_ctx *ctx = opaque_arg; + struct rte_crypto_op *op = obj; + + (ctx->populate_ops)(&op, ctx->src_buf_offset, + ctx->dst_buf_offset, + 1, ctx->sess, ctx->options, + ctx->test_vector, iv_offset, &imix_idx, NULL); + + cperf_mbuf_set(op->sym->m_src, + ctx->options, + ctx->test_vector); + +} + int cperf_throughput_test_runner(void *test_ctx) { @@ -143,6 +166,9 @@ cperf_throughput_test_runner(void *test_ctx) uint16_t iv_offset = sizeof(struct rte_crypto_op) + sizeof(struct rte_crypto_sym_op); + if (ctx->options->out_of_place) + rte_mempool_obj_iter(ctx->pool, cperf_verify_init_ops, (void *)ctx); + while (test_burst_size <= ctx->options->max_burst_size) { uint64_t ops_enqd = 0, ops_enqd_total = 0, ops_enqd_failed = 0; uint64_t ops_deqd = 0, ops_deqd_total = 0, ops_deqd_failed = 0; @@ -175,11 +201,12 @@ cperf_throughput_test_runner(void *test_ctx) } /* Setup crypto op, attach mbuf etc */ - (ctx->populate_ops)(ops, ctx->src_buf_offset, - ctx->dst_buf_offset, - ops_needed, ctx->sess, - ctx->options, ctx->test_vector, - iv_offset, &imix_idx, &tsc_start); + if (!ctx->options->out_of_place) + (ctx->populate_ops)(ops, ctx->src_buf_offset, + ctx->dst_buf_offset, + ops_needed, ctx->sess, + ctx->options, ctx->test_vector, + iv_offset, &imix_idx, &tsc_start); /** * When ops_needed is smaller than ops_enqd, the