From patchwork Tue Jun 19 06:26:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 41255 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 92AB7DE0; Tue, 19 Jun 2018 08:28:15 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0079.outbound.protection.outlook.com [104.47.36.79]) by dpdk.org (Postfix) with ESMTP id 3E1C71AFF for ; Tue, 19 Jun 2018 08:28:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UkQqX92Lv+g6gRJ1wUu5xS0OMMYLjxPBwENLQVzDw+0=; b=DwBdjpHkCoJ1WwPCdxUsfxWh/XfTRPkCP88Awu8sFlINQNFexm+FR2jbJYjpkeNQ2YLp45gAajVgSrkcQXY811iEbLoKgom4XsCWS4/JlVf6UB20XrsMjXK73P3cLp9clhHuKgtj7mJAYP/1bxOVtC5lonw+deeAUKXTkWmNh6s= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Anoob.Joseph@cavium.com; Received: from ajoseph83.caveonetworks.com.caveonetworks.com (115.113.156.2) by DM6PR07MB4907.namprd07.prod.outlook.com (2603:10b6:5:a3::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.16; Tue, 19 Jun 2018 06:28:09 +0000 From: Anoob Joseph To: Declan Doherty , Pablo de Lara Cc: Anoob Joseph , Akhil Goyal , Ankur Dwivedi , Jerin Jacob , Narayana Prasad , dev@dpdk.org Date: Tue, 19 Jun 2018 11:56:14 +0530 Message-Id: <1529389574-6643-3-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1529389574-6643-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1529389574-6643-1-git-send-email-anoob.joseph@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BM1PR0101CA0026.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::12) To DM6PR07MB4907.namprd07.prod.outlook.com (2603:10b6:5:a3::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f7107e68-c56d-407a-ad9c-08d5d5add4ad X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:DM6PR07MB4907; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4907; 3:26HXMyoqk6hrd6snlXA1Sl5YaTcJx0Mq9ozDjAGd8b0qM2ShCtZ/vuOKllxRlIZs6i2wCVj5IeklxKCswmX1aYTSa+YDtMUKPugMF87NJRApXsk5Fn7zMEowno3mNs+nnWevGtNb7bGq8d0anG8VQLiFFXQnB8god+xdefSGg7nmjRzbFS8uNHsbtstl1Rk28dyzetTQR/kbnPmbCiZjPntzfHYDMQ9tS3cyKPtL2L0C8LyCR1HUdj6qndjSa5lB; 25:wkJUQKEMBcoyl9a97xB45MoNe/toPxsmw86xBoAL01YderxMrEFTzrC4oW+/aCiapOfQzgW+mEHS3sIc2EhEvHST9AFujNZzn52NYA0Z78EPwsRLn7Y8oD5DnYja0KmdtKzPhiWP+HLsydCenEpz8R8ZZs0bKxm950L8VMhZxK6VIcJ12fcpVVYQyMcc+gLU1oTf+deK800zXJeWzlSKju8QCwXWsr5zVKmXLZXwlwyEhOu6lLrgYoF5F8GDO/zXp3z1cyUvti9tCjw91SYqVZLvGuyN9vg6vHLZLxiwDsWz3g1FF19SjgPRytFr+sVOJIXlWEIcEHTRqnarc6wHpA==; 31:nzOsAWBn6F6YBtyaVHZFMjIlsuuck8FcE5e4V+G9Hg0Pc/GBSn5WgZOakY0wYR1pYlooFmSBwjbdwepGRDXHiuF+zCWOrf7jTRB19VR22Siq7EJuxrZ3XuwLAb/JoKx9vnjxep95GVX/pIhY6chyb87K6g2N7Ro0HKMkExyEFC0rN4b0TuZGyK4iJK8c2iMKWht/FFrFKlfaUd37e4brFIyQ2UvCTUcZLW+YyG+Yqaw= X-MS-TrafficTypeDiagnostic: DM6PR07MB4907: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4907; 20:8BwU3yoXqqlrz2/GXBgfaDFa6vn617kgodDJ2T+IzMUm0eic5jM4HUV8zEwOHedEVlVjydHZDj1mSxysr/cksH5g/h7c2wA2G4nr8skCeZeR4QVj+YA1qdmkLdcJ0By9oq8n0IpdQWKOZz0mlctM0IT4Cyco1j6Dl8dgR1t1qv4P+6EODjxRQ30koiAsToEyV+u8BF7sVzmBGsarbsM65Jq7mGsRzzQ17glaki7Ha7lbEIRa6tuAcBL5H0ovG/oTZUIJf6N3ewV38LJjuGJdSaTQ8G+UrNxWUl0vU0qw7gxHyxagEsFxriy1/PwvLNzdvBE2ivsAR4KYA76qEdSC6xXHVTxr37Vza3ltsUKxJMEnSH1M5f117tPNPBVe42ky9S5pKxCmexr/yXSN3Cn7rQKdHetGVl5g/sWHYTyvA2BswFNtjOrcYO8tsh0uf0OuqjN3y8YlsWmIjYnbVcJoe8gF9ZsrJ3d1mH9kVG/FTTaoc8ZugXAmT5hYN1xmMC4NlKQSolEPlGfEgMo5gRGmtjW1GorwLJTIaCww0xQ1vmzFBZUirZxz4sD3pWoLN948+SvvEUgQBE2vNx1QBBKdTBOjWju9AhzwWWFCM4NCUBw=; 4:h/nR+CkfYClRzvNahy8VgVu6X8sddjvhw/PgyF2NetUxlQy0lgI4SonHCBIv5hofRYSW+97wy9cwzlGUuI5u/oeq68v/91NvLDgnzXR8r68op2tjy1bmNM5nGzOEPZYRLjoG2rLEUvwAHs8qcWSbF5dM3vlkv1u7yuntGzB41+8pRyuvGZjC5sqhVVx+sbcnjSbJay2UtizexzqZ/mmyZv/M5ERiUpLkZVNonT+gNBtfoN7S2ax6Xnq4XO3UzlFH8WYiiJ6kotPQkgQyt50hvA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016); SRVR:DM6PR07MB4907; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB4907; X-Forefront-PRVS: 07083FF734 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(396003)(39380400002)(366004)(39860400002)(199004)(189003)(16586007)(11346002)(36756003)(26005)(478600001)(25786009)(44832011)(2616005)(42882007)(16526019)(53936002)(54906003)(186003)(48376002)(476003)(956004)(6512007)(6666003)(305945005)(51416003)(316002)(52116002)(50226002)(68736007)(72206003)(486006)(6486002)(7736002)(76176011)(4326008)(110136005)(50466002)(5660300001)(3846002)(6116002)(105586002)(81166006)(8936002)(59450400001)(446003)(386003)(8676002)(8656006)(2906002)(106356001)(81156014)(47776003)(6506007)(97736004)(66066001)(55236004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB4907; H:ajoseph83.caveonetworks.com.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR07MB4907; 23:y/t2wN/5tyKQXRxB+wxP7lu1prpy2j9WUHCVHJ7xf?= Tv7p8aS6Z8Tz/aV315r2JYHYjdDsGPVfvdRCjHOJzmnsSTSZLTxbMQm9Ubgax4GAcQhEYvil5bo955hV7p8AbfuHvwye3P6mbWQADosZ5VeynxEBon+mAVlXcpb6F5m2516O5gswrIFwgbc/k8vov0JcE3XMrEaz+dXOFcKiUdvAfu+hB+pBiuC7elCdCYiBEf6Tou374krj2DXk0vCnbab5bNhGPDW8HK+tos1PdQnJDfvdyX85/iPXStBc6thPqgiOlpl5BRC5TGTPo3PFHwiI5VxBMLAKs5di9qbv5qwIn6BFwVUozDvw6zCCCmlubDHGmrObd25cTZskxrzwqVVZbLwI9s1mDQ3TuuWc8bcBrerR8ScO6D5GpV7kRQ8cwl39Dz4QnjJPVZ2qganW68xddXCDfbZM1BeAwVGTyqQOsnirn66AlJWMO95wOOvoHbja6LquVY0kEF5d/v9zM3HRGnCS3uYEdSFQLiP4fm/84jnHHB/VNkCJpOrJvEfrb5AtCcIOpZ/gsUSHjrY6ukMm6yXXpVo2cZf8WeMbsxahSUjUxdjcsA8RurYmkLlKh8VzcObwHg9cZvpa92FFYfLRtgLHgiLzfM6eDCIH1Ohse0r3ro2TlpSnbwiFWUKSwcgxqnIxQvu4/m9pAmob8Bjvrkx63YryUfxdC8RJKY8djzPb7GieSyWwfwMst2Ea0NlxEmt3YLBbK97slPy+zmCA3k/MF810mx0hvD+y1FMIuC3DQQuBG38lkw0AIPzFtq35isFrsPPjZY8JKveCcSmH81pZnVjiBrgUJi5+OQJ6Bb5eIgBjKtj5HatwKQe0OM8VXNw5f0W48bb/OLYWVBU7zCwGbt1LTuIkgRjUWUJuWCqQG47FeRs3TjY2kOembmpxyq19Mg78IGDfFaEKNzgkVANEgjFjNxoqPcWl+3UC5pt4GsQZjFd+ApFKmzWdT/vNtnCsykVi5vuB1mEmL5feXv8eavB+bK6Zff6hPz0WmD/0RyKboMazkZTi3lxzQ0KTlEdGnqRAOYWcmEe0FAjIee4LFxSBgNu4mvAuVRns98ysY8Cl3Gd8kghl44b0S2Y6EDNJYda2qFmZAW5GUXSpfCshOVqpKICRCT9itQMy2CFe0dNGnzu48EZu9KPLprDSCD63/gbIl9uaTXE1suHQU3zzUGmWTNtmB++BKF004yFbx1wEVQXSLRzSXgztrVfUM9aL6uMciXiVfGusJV15W4e6IzO4G01wSLjFYEIQW9tUA6jEuZj0msCowqWUvw= X-Microsoft-Antispam-Message-Info: Ntb0DBR/O+PO0Pm9+Ad/oDgP+IQh6vSMYLNj6B3wUnCMXy9RZ/pBMwLWkziQ/uNn+t+To3vDHyCjepA7oBxmWoyc64Q1ekX4GoK97Le4pr2z+JRB+Wj/IcPhjTM7XZ3s9dMJK2qWFcO378Mh8L8RKJXzmdyfawsK7lx0QB8m/DWys5C4bkvXyd/gnABa4qgvvHZHHo/5l4obosDmGydnfCMgdDDmN2d7b73kph0Bv9C3dQStyGGKrFRTEFBqYHpMoRPZU+xs/d3o3gGuSFIuqlJhfiOc2TtkbTxYWcSPjRvwo3Owo1LIPUng5W3HBfBofM6Qj9CnzivKeY8WqtPtxw== X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4907; 6:tqu8ddKbfKvWz35eqUp5N/UW//fjtY2tldXWnsui1XLozoVyouqaVMXDSKxAk6BX5xMrzL9+AlTMND6pbOwpd+rTL9Ik8HAm5xmDxOX14hHa7T2xNFARClL3A+ZWtr0GoDDzqy9TZ9Ad2c1sCMojf8jUalkQhN1K9vQF4kqVqllU7c5ZIy/XZNwCYCtxziYorBLlINurXMs9EqYfAU/HRQQuRMOhFZDuhkWWN+nud4uHgPLOijAZvOaQ4Lo7KNiUQwo16gJGPSgBP+lxedDLlXKN2FTDH9FbeTX1EYFGG7F4MMMa0wd2qjDkAQ/OfWP3ZmmCzD7ga1jzH6yIR6NTLLtsIcsaq5wYZECKLfDRLt4yApv3Ck2AhqIQwZQ0DA5rLLQdMdIYvnu9BQTJ9CbkLUZgWZEWHOuha63+rTOGv7CyLJTHunt682w0+nFUnpNbw+PVdny65Ju8m0uzNy1ckg==; 5:i8R17/KZtpd/iqG2SRaTQp+TjXfK5WHeRolUvLBNjy4SgB1I4ZcZC6XFIXALuJYvavvhmik/5R/+WF6SeMPPZTQ02aZ7hglK6FKL4uWuaQvRXP/hfSCq5JgfkYD0cTAnjU/syIkH2PMZwv4gH9FDTNEbSKfvA+K7J8ucCEsyY/0=; 24:ZkPhqg+2hrZ0/FyNyRvXdPPN5knPsglbXiPZg8lXXJveEspejT6J0bQIdsXYY14fHfNNRvRmJcXXA5C/agOOzzk3vK231R5YyGWDfI382BU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4907; 7:FddeFgdlFs+HVmngk0jBrY8c+Jxy587qXdhYbSragISuJDNbvdg/c5TdCTGKNXPjXGpL4aBxkaIhrfAlCd+IJ0h9i7BCZ07T+eHLNLVhJwzn/jyw/yPn6gwUfhZOJI4L6qyCnt23WRbVk8PKbVqotEuLPcQvk7rUblC1RS156okZNgCMi47SPpsEMVEaazNx3/xSXSGo0428yTXvCYcOTbwylP90W/EI3LUL2yWWZHu1YCodtCkywLRQtSzOcYyx X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2018 06:28:09.0374 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f7107e68-c56d-407a-ad9c-08d5d5add4ad X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4907 Subject: [dpdk-dev] [PATCH 2/2] app/crypto-perf: honour cryptodev's min headroom/tailroom X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Crypto dev would specify its headroom and tailroom requirement and the application is expected to honour this while creating buffers. Signed-off-by: Anoob Joseph --- app/test-crypto-perf/cperf_options.h | 2 ++ app/test-crypto-perf/cperf_test_common.c | 33 +++++++++++++++++++++----------- app/test-crypto-perf/main.c | 17 ++++++++++++++++ 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/app/test-crypto-perf/cperf_options.h b/app/test-crypto-perf/cperf_options.h index 350ad7e..f5bf03c 100644 --- a/app/test-crypto-perf/cperf_options.h +++ b/app/test-crypto-perf/cperf_options.h @@ -76,6 +76,8 @@ struct cperf_options { uint32_t pool_sz; uint32_t total_ops; + uint32_t headroom_sz; + uint32_t tailroom_sz; uint32_t segment_sz; uint32_t test_buffer_size; uint32_t *imix_buffer_sizes; diff --git a/app/test-crypto-perf/cperf_test_common.c b/app/test-crypto-perf/cperf_test_common.c index 423782c..e803dc1 100644 --- a/app/test-crypto-perf/cperf_test_common.c +++ b/app/test-crypto-perf/cperf_test_common.c @@ -11,12 +11,15 @@ struct obj_params { uint32_t src_buf_offset; uint32_t dst_buf_offset; uint16_t segment_sz; + uint16_t headroom_sz; + uint16_t data_len; uint16_t segments_nb; }; static void fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp, - void *obj, uint32_t mbuf_offset, uint16_t segment_sz) + void *obj, uint32_t mbuf_offset, uint16_t segment_sz, + uint16_t headroom, uint16_t data_len) { uint32_t mbuf_hdr_size = sizeof(struct rte_mbuf); @@ -26,10 +29,10 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp, m->buf_iova = rte_mempool_virt2iova(obj) + mbuf_offset + mbuf_hdr_size; m->buf_len = segment_sz; - m->data_len = segment_sz; + m->data_len = data_len; - /* No headroom needed for the buffer */ - m->data_off = 0; + /* Use headroom specified for the buffer */ + m->data_off = headroom; /* init some constant fields */ m->pool = mp; @@ -42,7 +45,7 @@ fill_single_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp, static void fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp, void *obj, uint32_t mbuf_offset, uint16_t segment_sz, - uint16_t segments_nb) + uint16_t headroom, uint16_t data_len, uint16_t segments_nb) { uint16_t mbuf_hdr_size = sizeof(struct rte_mbuf); uint16_t remaining_segments = segments_nb; @@ -57,10 +60,10 @@ fill_multi_seg_mbuf(struct rte_mbuf *m, struct rte_mempool *mp, m->buf_iova = next_seg_phys_addr; next_seg_phys_addr += mbuf_hdr_size + segment_sz; m->buf_len = segment_sz; - m->data_len = segment_sz; + m->data_len = data_len; - /* No headroom needed for the buffer */ - m->data_off = 0; + /* Use headroom specified for the buffer */ + m->data_off = headroom; /* init some constant fields */ m->pool = mp; @@ -99,10 +102,12 @@ mempool_obj_init(struct rte_mempool *mp, op->sym->m_src = m; if (params->segments_nb == 1) fill_single_seg_mbuf(m, mp, obj, params->src_buf_offset, - params->segment_sz); + params->segment_sz, params->headroom_sz, + params->data_len); else fill_multi_seg_mbuf(m, mp, obj, params->src_buf_offset, - params->segment_sz, params->segments_nb); + params->segment_sz, params->headroom_sz, + params->data_len, params->segments_nb); /* Set destination buffer */ @@ -110,7 +115,8 @@ mempool_obj_init(struct rte_mempool *mp, m = (struct rte_mbuf *) ((uint8_t *) obj + params->dst_buf_offset); fill_single_seg_mbuf(m, mp, obj, params->dst_buf_offset, - params->segment_sz); + params->segment_sz, params->headroom_sz, + params->data_len); op->sym->m_dst = m; } else op->sym->m_dst = NULL; @@ -172,6 +178,11 @@ cperf_alloc_common_memory(const struct cperf_options *options, struct obj_params params = { .segment_sz = options->segment_sz, + .headroom_sz = options->headroom_sz, + /* Data len = segment size - (headroom + tailroom) */ + .data_len = options->segment_sz - + options->headroom_sz - + options->tailroom_sz, .segments_nb = segments_nb, .src_buf_offset = crypto_op_total_size_padded, .dst_buf_offset = 0 diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c index 4ae1439..9d9154e 100644 --- a/app/test-crypto-perf/main.c +++ b/app/test-crypto-perf/main.c @@ -149,6 +149,23 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs, .nb_descriptors = opts->nb_descriptors }; + /** + * Device info specifies the min headroom and tailroom + * requirement for the crypto PMD. This need to be honoured + * by the application, while creating mbuf. + */ + if (opts->headroom_sz < cdev_info.min_headroom_req) { + /* Update headroom */ + opts->headroom_sz = cdev_info.min_headroom_req; + } + if (opts->tailroom_sz < cdev_info.min_tailroom_req) { + /* Update tailroom */ + opts->tailroom_sz = cdev_info.min_tailroom_req; + } + + /* Update segment size to include headroom & tailroom */ + opts->segment_sz += (opts->headroom_sz + opts->tailroom_sz); + if (session_pool_socket[socket_id] == NULL) { char mp_name[RTE_MEMPOOL_NAMESIZE]; struct rte_mempool *sess_mp;