From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D92E945A1E; Tue, 24 Sep 2024 18:38:35 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C78F34064A; Tue, 24 Sep 2024 18:38:27 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id CF5A34060C for ; Tue, 24 Sep 2024 18:38:26 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48OD3K9R021164; Tue, 24 Sep 2024 09:38:22 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pfpt0220; bh=u HVfGtqHRagkFS+Rcr52/EkQvEj6E4VyksmQ0QZrsvQ=; b=ixymibuohZ6PlT/6x h850m8q4+vu6lQ+vKRlBXnbmiYx49wNx0RMvA/2zV7Pdvw/MC3QJDdDiddPDlLIR Y3QPuDaO62XYGdXgo/qSQSHnAjZNLFfpLOB7oKoxsAd3L8Bjtr71n9TbMvMeJOg/ +aTPBOyZOS2KYrdmkM4IlXADlCHcbovl3ELvaHFYj8nmtTbXI9fGM4VOtZ9FI64k 6shlWMR5/563wFVPGEm3vZuVNzASEHpxk2ZROsxX1ZRJaRFfbkzcvVn/V7qSwOqn 7LSagyAenKM2BjVMHW8zc+cY3JQxOc+r+5NFH8ha9um1/Gt+Ugsh3X8PdRzGMrlV SLeYA== Received: from dc6wp-exch02.marvell.com ([4.21.29.225]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 41swnjww2b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Sep 2024 09:38:21 -0700 (PDT) Received: from DC6WP-EXCH02.marvell.com (10.76.176.209) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 24 Sep 2024 09:38:21 -0700 Received: from maili.marvell.com (10.69.176.80) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Tue, 24 Sep 2024 09:38:20 -0700 Received: from localhost.localdomain (unknown [10.28.36.102]) by maili.marvell.com (Postfix) with ESMTP id 6BE9B3F709F; Tue, 24 Sep 2024 09:38:15 -0700 (PDT) From: Akhil Goyal To: CC: , , , , , , , , , , , , , , , , , Akhil Goyal Subject: [PATCH v2 2/2] app/crypto-perf: test queue pair priority Date: Tue, 24 Sep 2024 22:08:01 +0530 Message-ID: <20240924163801.1841582-3-gakhil@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240924163801.1841582-1-gakhil@marvell.com> References: <20240731115445.1771803-1-gakhil@marvell.com> <20240924163801.1841582-1-gakhil@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: 6jYA8YW2i9nucsnh9K2KUzo_AaN0QvN8 X-Proofpoint-ORIG-GUID: 6jYA8YW2i9nucsnh9K2KUzo_AaN0QvN8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 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 Updated the application to test variable queue pair priority. A mask using `--low-prio-qp-mask` can be set to lower the priority of queues which are set in the mask. This would result in lower performance for those queues. By default the priority is set as highest. This option is added just to verify the performance drop of queues which have lower priority set. Signed-off-by: Akhil Goyal --- app/test-crypto-perf/cperf_options.h | 3 +++ app/test-crypto-perf/cperf_options_parsing.c | 20 ++++++++++++++++++++ app/test-crypto-perf/main.c | 6 +++++- doc/guides/tools/cryptoperf.rst | 5 +++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/test-crypto-perf/cperf_options.h b/app/test-crypto-perf/cperf_options.h index 131ecfdffb..48f409c3ba 100644 --- a/app/test-crypto-perf/cperf_options.h +++ b/app/test-crypto-perf/cperf_options.h @@ -32,6 +32,8 @@ #define CPERF_TEST_FILE ("test-file") #define CPERF_TEST_NAME ("test-name") +#define CPERF_LOW_PRIO_QP_MASK ("low-prio-qp-mask") + #define CPERF_CIPHER_ALGO ("cipher-algo") #define CPERF_CIPHER_OP ("cipher-op") #define CPERF_CIPHER_KEY_SZ ("cipher-key-sz") @@ -107,6 +109,7 @@ struct cperf_options { uint32_t *imix_buffer_sizes; uint32_t nb_descriptors; uint16_t nb_qps; + uint64_t low_prio_qp_mask; uint32_t sessionless:1; uint32_t shared_session:1; diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c index c91fcf0479..8c15cd813f 100644 --- a/app/test-crypto-perf/cperf_options_parsing.c +++ b/app/test-crypto-perf/cperf_options_parsing.c @@ -37,6 +37,7 @@ usage(char *progname) " --segment-sz N: set the size of the segment to use\n" " --desc-nb N: set number of descriptors for each crypto device\n" " --devtype TYPE: set crypto device type to use\n" + " --low-prio-qp-mask mask: set low priority for queues set in mask(hex)\n" " --optype cipher-only / auth-only / cipher-then-auth / auth-then-cipher /\n" " aead / pdcp / docsis / ipsec / modex / secp256r1 / sm2 / tls-record : set operation type\n" " --sessionless: enable session-less crypto operations\n" @@ -941,6 +942,22 @@ parse_pmd_cyclecount_delay_ms(struct cperf_options *opts, return 0; } +static int +parse_low_prio_qp_mask(struct cperf_options *opts, const char *arg) +{ + char *end = NULL; + unsigned long n; + + /* parse hexadecimal string */ + n = strtoul(arg, &end, 16); + if ((optarg[0] == '\0') || (end == NULL) || (*end != '\0')) + return -1; + + opts->low_prio_qp_mask = n; + + return 0; +} + typedef int (*option_parser_t)(struct cperf_options *opts, const char *arg); @@ -962,6 +979,8 @@ static struct option lgopts[] = { { CPERF_SEGMENT_SIZE, required_argument, 0, 0 }, { CPERF_DESC_NB, required_argument, 0, 0 }, + { CPERF_LOW_PRIO_QP_MASK, required_argument, 0, 0 }, + { CPERF_IMIX, required_argument, 0, 0 }, { CPERF_DEVTYPE, required_argument, 0, 0 }, { CPERF_OPTYPE, required_argument, 0, 0 }, @@ -1097,6 +1116,7 @@ cperf_opts_parse_long(int opt_idx, struct cperf_options *opts) { CPERF_BUFFER_SIZE, parse_buffer_sz }, { CPERF_SEGMENT_SIZE, parse_segment_sz }, { CPERF_DESC_NB, parse_desc_nb }, + { CPERF_LOW_PRIO_QP_MASK, parse_low_prio_qp_mask }, { CPERF_DEVTYPE, parse_device_type }, { CPERF_OPTYPE, parse_op_type }, { CPERF_SESSIONLESS, parse_sessionless }, diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c index 75810dbf0b..eac87091a1 100644 --- a/app/test-crypto-perf/main.c +++ b/app/test-crypto-perf/main.c @@ -249,7 +249,8 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs) } struct rte_cryptodev_qp_conf qp_conf = { - .nb_descriptors = opts->nb_descriptors + .nb_descriptors = opts->nb_descriptors, + .priority = RTE_CRYPTODEV_QP_PRIORITY_HIGHEST }; /** @@ -315,6 +316,9 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs) } for (j = 0; j < opts->nb_qps; j++) { + if ((1 << j) & opts->low_prio_qp_mask) + qp_conf.priority = RTE_CRYPTODEV_QP_PRIORITY_LOWEST; + ret = rte_cryptodev_queue_pair_setup(cdev_id, j, &qp_conf, socket_id); if (ret < 0) { diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst index 0510a3bb89..3a16b3a4a6 100644 --- a/doc/guides/tools/cryptoperf.rst +++ b/doc/guides/tools/cryptoperf.rst @@ -361,6 +361,11 @@ The following are the application command-line options: Set TLS/DTLS protocol version for perf test (default is TLS1.2). +* ``--low-prio-qp-mask `` + + Set low priority for queue pairs set in the hexadecimal mask. + This is an optional parameter, if not set all queue pairs will be on same high priority. + Test Vector File ~~~~~~~~~~~~~~~~ -- 2.25.1