From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: Re: [PATCH v3 03/16] app/crypto-perf: limit number of sessions Date: Wed, 4 Jul 2018 17:45:23 +0530 Message-ID: References: <20180608220234.10170-1-pablo.de.lara.guarch@intel.com> <20180628005304.26544-1-pablo.de.lara.guarch@intel.com> <20180628005304.26544-4-pablo.de.lara.guarch@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org To: Pablo de Lara , declan.doherty@intel.com, shally.verma@caviumnetworks.com, ravi1.kumar@amd.com, jerin.jacob@caviumnetworks.com, roy.fan.zhang@intel.com, fiona.trahe@intel.com, tdu@semihalf.com, jianjay.zhou@huawei.com Return-path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0081.outbound.protection.outlook.com [104.47.0.81]) by dpdk.org (Postfix) with ESMTP id BDA7F1B513 for ; Wed, 4 Jul 2018 14:15:42 +0200 (CEST) In-Reply-To: <20180628005304.26544-4-pablo.de.lara.guarch@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 6/28/2018 6:22 AM, Pablo de Lara wrote: > Instead of creating a fixed number of sessions, > calculate the necessary number based on number of devices > and queue pairs used. > > Signed-off-by: Pablo de Lara > --- > app/test-crypto-perf/main.c | 31 ++++++++++++++++++++++++++++--- > 1 file changed, 28 insertions(+), 3 deletions(-) > > diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c > index 4ae14390b..b02d3f597 100644 > --- a/app/test-crypto-perf/main.c > +++ b/app/test-crypto-perf/main.c > @@ -21,7 +21,6 @@ > #include "cperf_test_verify.h" > #include "cperf_test_pmd_cyclecount.h" > > -#define NUM_SESSIONS 2048 > #define SESS_MEMPOOL_CACHE_SIZE 64 > > const char *cperf_test_type_strs[] = { > @@ -149,15 +148,41 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs, > .nb_descriptors = opts->nb_descriptors > }; > > + uint32_t dev_max_nb_sess = cdev_info.sym.max_nb_sessions; > + /* Two sessions objects are required for each session > + * (one for the header, one for the private data) > + */ > + uint32_t sessions_needed = 2 * enabled_cdev_count * > + opts->nb_qps; > +#ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER > + if (!strcmp((const char *)opts->device_type, > + "crypto_scheduler")) { > + uint32_t nb_slaves = > + rte_cryptodev_scheduler_slaves_get(cdev_id, > + NULL); > + > + sessions_needed = 2 * enabled_cdev_count * > + opts->nb_qps * nb_slaves; > + } > +#endif One minor. Can we have #else? > + /* > + * A single session is required per queue pair > + * in each device > + */ > + if (dev_max_nb_sess < opts->nb_qps) { > + RTE_LOG(ERR, USER1, > + "Device does not support at least " > + "%u sessions\n", opts->nb_qps); > + return -ENOTSUP; > + } > if (session_pool_socket[socket_id] == NULL) { > char mp_name[RTE_MEMPOOL_NAMESIZE]; > struct rte_mempool *sess_mp; > > snprintf(mp_name, RTE_MEMPOOL_NAMESIZE, > "sess_mp_%u", socket_id); > - > sess_mp = rte_mempool_create(mp_name, > - NUM_SESSIONS, > + sessions_needed, > max_sess_size, > SESS_MEMPOOL_CACHE_SIZE, > 0, NULL, NULL, NULL,