From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 0226EA0679 for ; Tue, 30 Apr 2019 09:02:59 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 610975F3C; Tue, 30 Apr 2019 09:02:58 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50080.outbound.protection.outlook.com [40.107.5.80]) by dpdk.org (Postfix) with ESMTP id BC7315A6E for ; Tue, 30 Apr 2019 09:02:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gkwIR4VMjFaOkPp8sAx9qbZXTvj7zOtEtZTA1o7nvUk=; b=wn+h3WlLY+jre0r7fISmpdzb44NLlR+5YfwFza/EEimo0Hx+QlVmhfkf6vqK/QcDMkVwJouJlnrl4KqhM4pg4W9RH+c4nGLzzdLZkQJ3+klox+2Wi6ZShKk8NJIWa9GNdvsx8uUzV6rOJPFTp/HuNdAXVP+TryQFPuST32VeNQo= Received: from VI1PR04MB4893.eurprd04.prod.outlook.com (20.177.49.154) by VI1PR04MB4080.eurprd04.prod.outlook.com (10.171.183.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Tue, 30 Apr 2019 07:02:56 +0000 Received: from VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::98b0:84a6:1c08:57c7]) by VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::98b0:84a6:1c08:57c7%3]) with mapi id 15.20.1835.018; Tue, 30 Apr 2019 07:02:56 +0000 From: Akhil Goyal To: Anoob Joseph , Pablo de Lara CC: Jerin Jacob , Narayana Prasad , Shally Verma , "dev@dpdk.org" Thread-Topic: [EXT] [PATCH v2] crypto/octeontx: use distinct metabuf pool for each queue Thread-Index: AQHU9aZ6sNBARKM2zEKafkLc7YfqHaZUWX6Q Date: Tue, 30 Apr 2019 07:02:55 +0000 Message-ID: References: <20190418032953.2102-1-anoobj@marvell.com> <20190418052029.2784-1-anoobj@marvell.com> In-Reply-To: <20190418052029.2784-1-anoobj@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=akhil.goyal@nxp.com; x-originating-ip: [92.120.1.65] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6fdd4c26-6d6b-49b5-cdc6-08d6cd39df2e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:VI1PR04MB4080; x-ms-traffictypediagnostic: VI1PR04MB4080: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:155; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(136003)(366004)(376002)(346002)(39850400004)(199004)(189003)(64756008)(229853002)(66556008)(66446008)(66946007)(316002)(9686003)(6116002)(73956011)(81166006)(3846002)(478600001)(14454004)(8676002)(81156014)(99286004)(7696005)(30864003)(110136005)(97736004)(54906003)(5660300002)(6246003)(66476007)(76176011)(71200400001)(71190400001)(2906002)(76116006)(53936002)(86362001)(74316002)(25786009)(53946003)(66066001)(4326008)(7736002)(305945005)(446003)(486006)(6506007)(476003)(11346002)(186003)(14444005)(102836004)(44832011)(256004)(33656002)(68736007)(26005)(52536014)(6436002)(8936002)(55016002)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4080; H:VI1PR04MB4893.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 60c+mIaIvA31rk/XWZSmcadVMy8zlhhkH6xArYge0DUQxwYCM7a33c43kCTICZ9XtagjmiSKopTKiorN6ixfcCi5uNH99dS7pmkt46e0jHkznyjaBvBfwlMYY+RoyxdXSzRSG3NVNURqjxUT97GBYGu+4oGyFDrkZWhngwYuWzWWUU3Ny0n+dtHfgX5YzyclHp4pE5oBX6px01FtH3sRDeVzkWE7kmIWWOKWT3L7EiBD20eUH4GCLOl8in/W1lY8A6PbDJYtSxBFLcBwa7fD4tK3JVdbSk4IavVTCr4FwVW6UJ2bhjkZBK/iK/+fwMPjMnxxLLMzPF612lutaSyu3UsxoxGvn0xIONVcU+mV4apPhfXjdZg0289VHT0q+JQNoNkHSlZ5RKPvRn6NyimB49pdcthHSXgz8XcKMNVxJcM= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6fdd4c26-6d6b-49b5-cdc6-08d6cd39df2e X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 07:02:55.5776 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4080 Subject: Re: [dpdk-dev] [EXT] [PATCH v2] crypto/octeontx: use distinct metabuf pool for each queue 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" Message-ID: <20190430070255.psAnEIcYfHKSnBJoKsakgOC1V1qzVpGzXpojJHK0Z04@z> Hi Anoob, I believe this patch is for 19.08 release. This patch is not acked and we a= re about to close the RC4. -Akhil >=20 >=20 > The metabuf pool is shared across all queue pairs belonging to the > PMD. In order to prevent one queue pair from starving another, > use a distinct mempool for each queue pair. >=20 > Fixes: 273487f7b381 ("crypto/octeontx: add global resource init") >=20 > Signed-off-by: Anoob Joseph > --- > v2: > * Mail server converted v1 patch file to DOS while sending. This caused > checkpatch to report errors. Addressed this. >=20 > drivers/common/cpt/cpt_common.h | 10 ++- > drivers/common/cpt/cpt_ucode.h | 24 +++-- > drivers/crypto/octeontx/otx_cryptodev.c | 3 - > drivers/crypto/octeontx/otx_cryptodev_hw_access.c | 105 > ++++++++++++++++++++-- > drivers/crypto/octeontx/otx_cryptodev_hw_access.h | 7 +- > drivers/crypto/octeontx/otx_cryptodev_ops.c | 98 ++--------------= ---- > drivers/crypto/octeontx/otx_cryptodev_ops.h | 3 - > 7 files changed, 127 insertions(+), 123 deletions(-) >=20 > diff --git a/drivers/common/cpt/cpt_common.h > b/drivers/common/cpt/cpt_common.h > index ceb32f2..32f23ac 100644 > --- a/drivers/common/cpt/cpt_common.h > +++ b/drivers/common/cpt/cpt_common.h > @@ -5,6 +5,8 @@ > #ifndef _CPT_COMMON_H_ > #define _CPT_COMMON_H_ >=20 > +#include > + > /* > * This file defines common macros and structs > */ > @@ -38,10 +40,10 @@ >=20 > #define MOD_INC(i, l) ((i) =3D=3D (l - 1) ? (i) =3D 0 : (i)++) >=20 > -struct cptvf_meta_info { > - void *cptvf_meta_pool; > - int cptvf_op_mlen; > - int cptvf_op_sb_mlen; > +struct cpt_qp_meta_info { > + struct rte_mempool *pool; > + int sg_mlen; > + int lb_mlen; > }; >=20 > struct rid { > diff --git a/drivers/common/cpt/cpt_ucode.h > b/drivers/common/cpt/cpt_ucode.h > index 239c5df..f21352e 100644 > --- a/drivers/common/cpt/cpt_ucode.h > +++ b/drivers/common/cpt/cpt_ucode.h > @@ -3147,7 +3147,7 @@ prepare_iov_from_pkt_inplace(struct rte_mbuf *pkt, > static __rte_always_inline int > fill_fc_params(struct rte_crypto_op *cop, > struct cpt_sess_misc *sess_misc, > - struct cptvf_meta_info *cpt_m_info, > + struct cpt_qp_meta_info *m_info, > void **mdata_ptr, > void **prep_req) > { > @@ -3365,15 +3365,11 @@ fill_fc_params(struct rte_crypto_op *cop, > } >=20 > if (likely(flags & SINGLE_BUF_HEADTAILROOM)) > - mdata =3D alloc_op_meta(m_src, > - &fc_params.meta_buf, > - cpt_m_info->cptvf_op_sb_mlen, > - cpt_m_info->cptvf_meta_pool); > + mdata =3D alloc_op_meta(m_src, &fc_params.meta_buf, > + m_info->lb_mlen, m_info->pool); > else > - mdata =3D alloc_op_meta(NULL, > - &fc_params.meta_buf, > - cpt_m_info->cptvf_op_mlen, > - cpt_m_info->cptvf_meta_pool); > + mdata =3D alloc_op_meta(NULL, &fc_params.meta_buf, > + m_info->sg_mlen, m_info->pool); >=20 > if (unlikely(mdata =3D=3D NULL)) { > CPT_LOG_DP_ERR("Error allocating meta buffer for request"= ); > @@ -3410,7 +3406,7 @@ fill_fc_params(struct rte_crypto_op *cop, > return 0; >=20 > free_mdata_and_exit: > - free_op_meta(mdata, cpt_m_info->cptvf_meta_pool); > + free_op_meta(mdata, m_info->pool); > err_exit: > return ret; > } > @@ -3521,7 +3517,7 @@ find_kasumif9_direction_and_length(uint8_t *src, > static __rte_always_inline int > fill_digest_params(struct rte_crypto_op *cop, > struct cpt_sess_misc *sess, > - struct cptvf_meta_info *cpt_m_info, > + struct cpt_qp_meta_info *m_info, > void **mdata_ptr, > void **prep_req) > { > @@ -3547,8 +3543,8 @@ fill_digest_params(struct rte_crypto_op *cop, > m_src =3D sym_op->m_src; >=20 > /* For just digest lets force mempool alloc */ > - mdata =3D alloc_op_meta(NULL, ¶ms.meta_buf, cpt_m_info- > >cptvf_op_mlen, > - cpt_m_info->cptvf_meta_pool); > + mdata =3D alloc_op_meta(NULL, ¶ms.meta_buf, m_info->sg_mlen, > + m_info->pool); > if (mdata =3D=3D NULL) { > ret =3D -ENOMEM; > goto err_exit; > @@ -3683,7 +3679,7 @@ fill_digest_params(struct rte_crypto_op *cop, > return 0; >=20 > free_mdata_and_exit: > - free_op_meta(mdata, cpt_m_info->cptvf_meta_pool); > + free_op_meta(mdata, m_info->pool); > err_exit: > return ret; > } > diff --git a/drivers/crypto/octeontx/otx_cryptodev.c > b/drivers/crypto/octeontx/otx_cryptodev.c > index b201e0a..fc64a5f 100644 > --- a/drivers/crypto/octeontx/otx_cryptodev.c > +++ b/drivers/crypto/octeontx/otx_cryptodev.c > @@ -104,9 +104,6 @@ otx_cpt_pci_remove(struct rte_pci_device *pci_dev) > cryptodev->device =3D NULL; > cryptodev->data =3D NULL; >=20 > - /* free metapool memory */ > - cleanup_global_resources(); > - > return 0; > } >=20 > diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > index 18f2e6b..eba6293 100644 > --- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > +++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > @@ -7,7 +7,9 @@ >=20 > #include > #include > +#include > #include > +#include > #include > #include >=20 > @@ -15,8 +17,11 @@ > #include "otx_cryptodev_mbox.h" >=20 > #include "cpt_pmd_logs.h" > +#include "cpt_pmd_ops_helper.h" > #include "cpt_hw_types.h" >=20 > +#define METABUF_POOL_CACHE_SIZE 512 > + > /* > * VF HAL functions > * Access its own BAR0/4 registers by passing VF number as 0. > @@ -395,12 +400,90 @@ otx_cpt_deinit_device(void *dev) > return 0; > } >=20 > +static int > +otx_cpt_metabuf_mempool_create(const struct rte_cryptodev *dev, > + struct cpt_instance *instance, uint8_t qp_= id, > + int nb_elements) > +{ > + char mempool_name[RTE_MEMPOOL_NAMESIZE]; > + int sg_mlen, lb_mlen, max_mlen, ret; > + struct cpt_qp_meta_info *meta_info; > + struct rte_mempool *pool; > + > + /* Get meta len for scatter gather mode */ > + sg_mlen =3D cpt_pmd_ops_helper_get_mlen_sg_mode(); > + > + /* Extra 32B saved for future considerations */ > + sg_mlen +=3D 4 * sizeof(uint64_t); > + > + /* Get meta len for linear buffer (direct) mode */ > + lb_mlen =3D cpt_pmd_ops_helper_get_mlen_direct_mode(); > + > + /* Extra 32B saved for future considerations */ > + lb_mlen +=3D 4 * sizeof(uint64_t); > + > + /* Check max requirement for meta buffer */ > + max_mlen =3D RTE_MAX(lb_mlen, sg_mlen); > + > + /* Allocate mempool */ > + > + snprintf(mempool_name, RTE_MEMPOOL_NAMESIZE, > "otx_cpt_mb_%u:%u", > + dev->data->dev_id, qp_id); > + > + pool =3D rte_mempool_create_empty(mempool_name, nb_elements, > max_mlen, > + METABUF_POOL_CACHE_SIZE, 0, > + rte_socket_id(), 0); > + > + if (pool =3D=3D NULL) { > + CPT_LOG_ERR("Could not create mempool for metabuf"); > + return rte_errno; > + } > + > + ret =3D rte_mempool_set_ops_byname(pool, > RTE_MBUF_DEFAULT_MEMPOOL_OPS, > + NULL); > + if (ret) { > + CPT_LOG_ERR("Could not set mempool ops"); > + goto mempool_free; > + } > + > + ret =3D rte_mempool_populate_default(pool); > + if (ret <=3D 0) { > + CPT_LOG_ERR("Could not populate metabuf pool"); > + goto mempool_free; > + } > + > + meta_info =3D &instance->meta_info; > + > + meta_info->pool =3D pool; > + meta_info->lb_mlen =3D lb_mlen; > + meta_info->sg_mlen =3D sg_mlen; > + > + return 0; > + > +mempool_free: > + rte_mempool_free(pool); > + return ret; > +} > + > +static void > +otx_cpt_metabuf_mempool_destroy(struct cpt_instance *instance) > +{ > + struct cpt_qp_meta_info *meta_info =3D &instance->meta_info; > + > + rte_mempool_free(meta_info->pool); > + > + meta_info->pool =3D NULL; > + meta_info->lb_mlen =3D 0; > + meta_info->sg_mlen =3D 0; > +} > + > int > -otx_cpt_get_resource(void *dev, uint8_t group, struct cpt_instance **ins= tance) > +otx_cpt_get_resource(const struct rte_cryptodev *dev, uint8_t group, > + struct cpt_instance **instance, uint16_t qp_id) > { > int ret =3D -ENOENT, len, qlen, i; > int chunk_len, chunks, chunk_size; > - struct cpt_vf *cptvf =3D (struct cpt_vf *)dev; > + struct cpt_vf *cptvf =3D dev->data->dev_private; > struct cpt_instance *cpt_instance; > struct command_chunk *chunk_head =3D NULL, *chunk_prev =3D NULL; > struct command_chunk *chunk =3D NULL; > @@ -446,7 +529,7 @@ otx_cpt_get_resource(void *dev, uint8_t group, struct > cpt_instance **instance) > RTE_CACHE_LINE_SIZE); > if (!rz) { > ret =3D rte_errno; > - goto cleanup; > + goto exit; > } >=20 > mem =3D rz->addr; > @@ -457,6 +540,12 @@ otx_cpt_get_resource(void *dev, uint8_t group, struc= t > cpt_instance **instance) >=20 > cpt_instance->rsvd =3D (uintptr_t)rz; >=20 > + ret =3D otx_cpt_metabuf_mempool_create(dev, cpt_instance, qp_id, = qlen); > + if (ret) { > + CPT_LOG_ERR("Could not create mempool for metabuf"); > + goto memzone_free; > + } > + > /* Pending queue setup */ > cptvf->pqueue.rid_queue =3D (struct rid *)mem; > cptvf->pqueue.enq_tail =3D 0; > @@ -513,7 +602,7 @@ otx_cpt_get_resource(void *dev, uint8_t group, struct > cpt_instance **instance) > CPT_LOG_ERR("Failed to initialize CPT VQ of device %s", > cptvf->dev_name); > ret =3D -EBUSY; > - goto cleanup; > + goto mempool_destroy; > } >=20 > *instance =3D cpt_instance; > @@ -521,8 +610,12 @@ otx_cpt_get_resource(void *dev, uint8_t group, struc= t > cpt_instance **instance) > CPT_LOG_DP_DEBUG("Crypto device (%s) initialized", cptvf->dev_nam= e); >=20 > return 0; > -cleanup: > + > +mempool_destroy: > + otx_cpt_metabuf_mempool_destroy(cpt_instance); > +memzone_free: > rte_memzone_free(rz); > +exit: > *instance =3D NULL; > return ret; > } > @@ -540,6 +633,8 @@ otx_cpt_put_resource(struct cpt_instance *instance) >=20 > CPT_LOG_DP_DEBUG("Releasing cpt device %s", cptvf->dev_name); >=20 > + otx_cpt_metabuf_mempool_destroy(instance); > + > rz =3D (struct rte_memzone *)instance->rsvd; > rte_memzone_free(rz); > return 0; > diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h > b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h > index dea4cba..63c199e 100644 > --- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h > +++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h > @@ -7,6 +7,7 @@ > #include >=20 > #include > +#include > #include > #include > #include > @@ -41,6 +42,7 @@ struct cpt_instance { > uintptr_t rsvd; > struct rte_mempool *sess_mp; > struct rte_mempool *sess_mp_priv; > + struct cpt_qp_meta_info meta_info; > }; >=20 > struct command_chunk { > @@ -76,8 +78,6 @@ struct cpt_vf { > struct command_queue cqueue; > /** Pending queue information */ > struct pending_queue pqueue; > - /** Meta information per vf */ > - struct cptvf_meta_info meta_info; >=20 > /** Below fields are accessed only in control path */ >=20 > @@ -156,7 +156,8 @@ int > otx_cpt_deinit_device(void *dev); >=20 > int > -otx_cpt_get_resource(void *dev, uint8_t group, struct cpt_instance **ins= tance); > +otx_cpt_get_resource(const struct rte_cryptodev *dev, uint8_t group, > + struct cpt_instance **instance, uint16_t qp_id); >=20 > int > otx_cpt_put_resource(struct cpt_instance *instance); > diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c > b/drivers/crypto/octeontx/otx_cryptodev_ops.c > index 0f9f2a2..9628ffa 100644 > --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c > +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c > @@ -6,10 +6,11 @@ > #include > #include > #include > +#include > #include > +#include >=20 > #include "cpt_pmd_logs.h" > -#include "cpt_pmd_ops_helper.h" > #include "cpt_ucode.h" >=20 > #include "otx_cryptodev.h" > @@ -17,68 +18,11 @@ > #include "otx_cryptodev_hw_access.h" > #include "otx_cryptodev_ops.h" >=20 > -static int otx_cryptodev_probe_count; > -static rte_spinlock_t otx_probe_count_lock =3D RTE_SPINLOCK_INITIALIZER; > - > -static struct rte_mempool *otx_cpt_meta_pool; > -static int otx_cpt_op_mlen; > -static int otx_cpt_op_sb_mlen; > - > /* Forward declarations */ >=20 > static int > otx_cpt_que_pair_release(struct rte_cryptodev *dev, uint16_t que_pair_id= ); >=20 > -/* > - * Initializes global variables used by fast-path code > - * > - * @return > - * - 0 on success, errcode on error > - */ > -static int > -init_global_resources(void) > -{ > - /* Get meta len for scatter gather mode */ > - otx_cpt_op_mlen =3D cpt_pmd_ops_helper_get_mlen_sg_mode(); > - > - /* Extra 4B saved for future considerations */ > - otx_cpt_op_mlen +=3D 4 * sizeof(uint64_t); > - > - otx_cpt_meta_pool =3D rte_mempool_create("cpt_metabuf-pool", 4096= * 16, > - otx_cpt_op_mlen, 512, 0, > - NULL, NULL, NULL, NULL, > - SOCKET_ID_ANY, 0); > - if (!otx_cpt_meta_pool) { > - CPT_LOG_ERR("cpt metabuf pool not created"); > - return -ENOMEM; > - } > - > - /* Get meta len for direct mode */ > - otx_cpt_op_sb_mlen =3D cpt_pmd_ops_helper_get_mlen_direct_mode(); > - > - /* Extra 4B saved for future considerations */ > - otx_cpt_op_sb_mlen +=3D 4 * sizeof(uint64_t); > - > - return 0; > -} > - > -void > -cleanup_global_resources(void) > -{ > - /* Take lock */ > - rte_spinlock_lock(&otx_probe_count_lock); > - > - /* Decrement the cryptodev count */ > - otx_cryptodev_probe_count--; > - > - /* Free buffers */ > - if (otx_cpt_meta_pool && otx_cryptodev_probe_count =3D=3D 0) > - rte_mempool_free(otx_cpt_meta_pool); > - > - /* Free lock */ > - rte_spinlock_unlock(&otx_probe_count_lock); > -} > - > /* Alarm routines */ >=20 > static void > @@ -187,7 +131,6 @@ otx_cpt_que_pair_setup(struct rte_cryptodev *dev, > const struct rte_cryptodev_qp_conf *qp_conf, > int socket_id __rte_unused) > { > - void *cptvf =3D dev->data->dev_private; > struct cpt_instance *instance =3D NULL; > struct rte_pci_device *pci_dev; > int ret =3D -1; > @@ -213,7 +156,7 @@ otx_cpt_que_pair_setup(struct rte_cryptodev *dev, > return -EIO; > } >=20 > - ret =3D otx_cpt_get_resource(cptvf, 0, &instance); > + ret =3D otx_cpt_get_resource(dev, 0, &instance, que_pair_id); > if (ret !=3D 0 || instance =3D=3D NULL) { > CPT_LOG_ERR("Error getting instance handle from device %s= : " > "ret =3D %d", dev->data->name, ret); > @@ -384,7 +327,6 @@ otx_cpt_enq_single_sym(struct cpt_instance *instance, > void *prep_req, *mdata =3D NULL; > int ret =3D 0; > uint64_t cpt_op; > - struct cpt_vf *cptvf =3D (struct cpt_vf *)instance; >=20 > sess =3D (struct cpt_sess_misc *) > get_sym_session_private_data(sym_op->session, > @@ -393,10 +335,10 @@ otx_cpt_enq_single_sym(struct cpt_instance > *instance, > cpt_op =3D sess->cpt_op; >=20 > if (likely(cpt_op & CPT_OP_CIPHER_MASK)) > - ret =3D fill_fc_params(op, sess, &cptvf->meta_info, &mdat= a, > + ret =3D fill_fc_params(op, sess, &instance->meta_info, &m= data, > &prep_req); > else > - ret =3D fill_digest_params(op, sess, &cptvf->meta_info, > + ret =3D fill_digest_params(op, sess, &instance->meta_info= , > &mdata, &prep_req); >=20 > if (unlikely(ret)) { > @@ -410,7 +352,7 @@ otx_cpt_enq_single_sym(struct cpt_instance *instance, >=20 > if (unlikely(ret)) { > /* Buffer allocated for request preparation need to be fr= eed */ > - free_op_meta(mdata, cptvf->meta_info.cptvf_meta_pool); > + free_op_meta(mdata, instance->meta_info.pool); > return ret; > } >=20 > @@ -618,7 +560,7 @@ otx_cpt_pkt_dequeue(void *qptr, struct rte_crypto_op > **ops, uint16_t nb_ops) > rte_mempool_put(instance->sess_mp, cop->sym->sess= ion); > cop->sym->session =3D NULL; > } > - free_op_meta(metabuf, cptvf->meta_info.cptvf_meta_pool); > + free_op_meta(metabuf, instance->meta_info.pool); > } >=20 > return nb_completed; > @@ -644,14 +586,6 @@ static struct rte_cryptodev_ops cptvf_ops =3D { > .sym_session_clear =3D otx_cpt_session_clear > }; >=20 > -static void > -otx_cpt_common_vars_init(struct cpt_vf *cptvf) > -{ > - cptvf->meta_info.cptvf_meta_pool =3D otx_cpt_meta_pool; > - cptvf->meta_info.cptvf_op_mlen =3D otx_cpt_op_mlen; > - cptvf->meta_info.cptvf_op_sb_mlen =3D otx_cpt_op_sb_mlen; > -} > - > int > otx_cpt_dev_create(struct rte_cryptodev *c_dev) > { > @@ -699,20 +633,6 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev) > /* Start off timer for mailbox interrupts */ > otx_cpt_periodic_alarm_start(cptvf); >=20 > - rte_spinlock_lock(&otx_probe_count_lock); > - if (!otx_cryptodev_probe_count) { > - ret =3D init_global_resources(); > - if (ret) { > - rte_spinlock_unlock(&otx_probe_count_lock); > - goto init_fail; > - } > - } > - otx_cryptodev_probe_count++; > - rte_spinlock_unlock(&otx_probe_count_lock); > - > - /* Initialize data path variables used by common code */ > - otx_cpt_common_vars_init(cptvf); > - > c_dev->dev_ops =3D &cptvf_ops; >=20 > c_dev->enqueue_burst =3D otx_cpt_pkt_enqueue; > @@ -730,10 +650,6 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev) >=20 > return 0; >=20 > -init_fail: > - otx_cpt_periodic_alarm_stop(cptvf); > - otx_cpt_deinit_device(cptvf); > - > fail: > if (cptvf) { > /* Free private data allocated */ > diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.h > b/drivers/crypto/octeontx/otx_cryptodev_ops.h > index b3efecf..768ec4f 100644 > --- a/drivers/crypto/octeontx/otx_cryptodev_ops.h > +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.h > @@ -9,9 +9,6 @@ > #define OTX_CPT_MIN_TAILROOM_REQ (8) > #define CPT_NUM_QS_PER_VF (1) >=20 > -void > -cleanup_global_resources(void); > - > int > otx_cpt_dev_create(struct rte_cryptodev *c_dev); >=20 > -- > 2.9.5