From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: Re: [PATCH v3 05/16] examples/l2fwd-crypto: limit number of sessions Date: Wed, 4 Jul 2018 17:34:30 +0530 Message-ID: References: <20180608220234.10170-1-pablo.de.lara.guarch@intel.com> <20180628005304.26544-1-pablo.de.lara.guarch@intel.com> <20180628005304.26544-6-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 EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40079.outbound.protection.outlook.com [40.107.4.79]) by dpdk.org (Postfix) with ESMTP id 5BE155B36 for ; Wed, 4 Jul 2018 14:04:51 +0200 (CEST) In-Reply-To: <20180628005304.26544-6-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: > 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; Should we do this in #else of RTE_LIBRTE_PMD_CRYPTO_SCHEDULER ? Otherwise, Acked. > +#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, >