From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 9CC7F7ED7 for ; Thu, 28 Jun 2018 10:59:22 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jun 2018 01:59:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,282,1526367600"; d="scan'208";a="70667021" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by orsmga002.jf.intel.com with ESMTP; 28 Jun 2018 01:59:11 -0700 From: Pablo de Lara To: declan.doherty@intel.com, akhil.goyal@nxp.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 Cc: dev@dpdk.org, Pablo de Lara Date: Thu, 28 Jun 2018 01:52:53 +0100 Message-Id: <20180628005304.26544-6-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180628005304.26544-1-pablo.de.lara.guarch@intel.com> References: <20180608220234.10170-1-pablo.de.lara.guarch@intel.com> <20180628005304.26544-1-pablo.de.lara.guarch@intel.com> Subject: [dpdk-dev] [PATCH v3 05/16] examples/l2fwd-crypto: limit number of sessions 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: , X-List-Received-Date: Thu, 28 Jun 2018 08:59:23 -0000 Calculate the number of sessions required for the application, knowing that there is only one session required per device. Signed-off-by: Pablo de Lara --- examples/l2fwd-crypto/main.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 4bca87b19..e8384b0c1 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -42,6 +42,9 @@ #include #include #include +#ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER +#include +#endif enum cdev_type { CDEV_TYPE_ANY, @@ -59,7 +62,6 @@ enum cdev_type { #define MAX_AAD_SIZE 65535 #define MAX_PKT_BURST 32 #define BURST_TX_DRAIN_US 100 /* TX drain every ~100us */ -#define MAX_SESSIONS 32 #define SESSION_POOL_CACHE_SIZE 0 #define MAXIMUM_IV_LENGTH 16 @@ -2010,6 +2012,19 @@ initialize_cryptodevs(struct l2fwd_crypto_options *options, unsigned nb_ports, rte_cryptodev_info_get(cdev_id, &dev_info); + /* 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; +#ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER + if (!strcmp(dev_info.driver_name, "crypto_scheduler")) { + uint32_t nb_slaves = + rte_cryptodev_scheduler_slaves_get(cdev_id, + NULL); + + sessions_needed = 2 * enabled_cdev_count * nb_slaves; + } +#endif if (session_pool_socket[socket_id] == NULL) { char mp_name[RTE_MEMPOOL_NAMESIZE]; struct rte_mempool *sess_mp; @@ -2022,7 +2037,7 @@ initialize_cryptodevs(struct l2fwd_crypto_options *options, unsigned nb_ports, * device private data */ sess_mp = rte_mempool_create(mp_name, - MAX_SESSIONS * 2, + sessions_needed, max_sess_sz, SESSION_POOL_CACHE_SIZE, 0, NULL, NULL, NULL, -- 2.14.4