From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0C3AC433EF for ; Wed, 6 Oct 2021 14:01:25 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id 5637D60E74 for ; Wed, 6 Oct 2021 14:01:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5637D60E74 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=marvell.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D60241137; Wed, 6 Oct 2021 16:01:24 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 3941441130 for ; Wed, 6 Oct 2021 16:01:20 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 196DNTPp020129; Wed, 6 Oct 2021 07:01:15 -0700 Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2168.outbound.protection.outlook.com [104.47.73.168]) by mx0b-0016f401.pphosted.com with ESMTP id 3bh9fd0x1w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Oct 2021 07:01:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f4vbzwqbIqDh3qzfPClWKKFvgVI7PtShtfEVEhEJSY3OSNxOegfrdeGXs36DDoPwLzqkzV7++jA18mTD73yfm/7IqGhB0oGLk1DnTokfCCIrKSKZEmGVUQhpeiIZHdGXGFmb2/+fRnXy6sJaVH2NL4a2BxRpmL8X1mKD1oI03KhwZxpLID3HbgdiZoKcV/o+xdL9tsI0ZlnD0X96KD2qTTey92+O2CYYxj8LALRmnOsxyRk9IKYJWgVrDzm4HArrm0c8NdKUqwvcQSf/clVZWC+eBQWw3IfTfV/iomNALLqz0My1pHCMMReksnNNbF/Z3SudGakVNzjgZJ2CTRhj0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fpGv6EhChpUy/WVcj7XA0ITrVZOu5JURrqMOF+Wd2DU=; b=XJM9a9QsgAb4g9DcJZZBBdlsK0qY0vK2n40bjLNpjtIO1L/hzzG8mzazIQplW87pDVZ+VaAiRmmbHacwH7F/6rjREc2joI0anrf1i/A1/JEWMsHPaqOSJwzpN+qDX6GkZE9z0j2k38+ETjyX7NvNbyGmebvGiqOrs3wrH2ODKsaLjg8J+4c8sNagjr2VuwrF2g2fVLc47jZOdmfCyKu0EnhgF7gtCpDHqfiFUlm7t+Q+z32vxSNin8olacYzNiEzSE6CpsMkmPh+w9sZvlBgj5HOgGEaHqNtkPtGFRzCYe6+8zlWZgzeLHl25DcsEooZRjB5TL/7TRzY6pDf9K+vWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fpGv6EhChpUy/WVcj7XA0ITrVZOu5JURrqMOF+Wd2DU=; b=q1vLEsycXWmMjlN2Tdx2uykDJeL2RGfTXLungjWH6NJRs4wTz6Wh7xG/V64sQbnD10sQoZvJoN/eQu8XXNut0Bh61RpIOAwv6tXK8khwZpA3uw+dEzgpxuc5gvg7cHrD7aajDhBNBLZKrW/SqVbIeRP9UF5eZLY1MD4/+VrMSZI= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CO1PR18MB4603.namprd18.prod.outlook.com (2603:10b6:303:e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Wed, 6 Oct 2021 14:01:10 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::c41e:707:3f91:71b8]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::c41e:707:3f91:71b8%6]) with mapi id 15.20.4566.023; Wed, 6 Oct 2021 14:01:10 +0000 From: Akhil Goyal To: Ciara Power , "dev@dpdk.org" CC: "roy.fan.zhang@intel.com" , "piotrx.bronowski@intel.com" , Pablo de Lara , Anatoly Burakov Thread-Topic: [EXT] [PATCH v3 02/10] crypto/ipsec_mb: add multiprocess support Thread-Index: AQHXtU9k9WUce2X2gUyPHBo61efnAqvGCCQg Date: Wed, 6 Oct 2021 14:01:10 +0000 Message-ID: References: <20210727083832.291687-1-roy.fan.zhang@intel.com> <20210929163035.608387-1-ciara.power@intel.com> <20210929163035.608387-3-ciara.power@intel.com> In-Reply-To: <20210929163035.608387-3-ciara.power@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 07a12a72-68c5-4b76-ce21-08d988d1c05d x-ms-traffictypediagnostic: CO1PR18MB4603: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2657; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mVE9HYeLV7Y5QMahBhe4oYhwn3kSpxYKeKXkEQ6kVpBnn1hgXfZa409axtmvVND6zXvk4cBGHi1EeHtSVDi4JHqaxMAwmjQUI1hCCUpO8NxVn/HXtKSIc71uoV1HW0cakMKb+DLN0S6dfrN0+PKvPHSvSRwTOhH9c4J8a4wfClVVCG9GydZgACaVTlhmq1N/d+NL3V5NR5VQhKBkowyS7PEfrx2mZy0+SUx1TUchHVTYT8V0QQyTs7Ia26PiNE0zDwNmUe3/JBYxR44tOeuI4FnSLkWODeDRWgPN87qO4i8dVZw9p1TkAQNKmkFIT7h+rfRGcUSJfUUL4TTvgoLJsVMeHs2NBG+QEE/ymao/4u/e/qAB1HapppkUyUl0wJ8gdWje76CxO5yLhMDW0hQhUq4TbLJ3yVAWkHwS7f2p0Cp0fhc930ov3UlXiJbaW6X8JWGsz0qo+jzqqvzwM1KdqvPVSaao3RCbX7+cG0p6VSMRFIKFlUQxGdMSU7uXz9Zj8hB+9//U0TmBMWsYzAMxJC7PDol5ihWjSqOBLfb/zq1dFj8O8mqqDEyyWSIBvNMM8zyiSD9O+eQe2GeH7VensIPoYaspIL656RO3N9Zz4znrv62osctkaczyCnNdIQJUWtVCUj29+wkcnmRRkJG1dJttOB9EFXmrwcD+5JKCJe0YFQjgOnz2Rz1+VYCplT4dFXAgTSLo4wEdGVOLxzgeng== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(55016002)(4326008)(8676002)(64756008)(66556008)(66476007)(26005)(66446008)(71200400001)(33656002)(66946007)(186003)(76116006)(8936002)(9686003)(86362001)(38070700005)(6506007)(83380400001)(55236004)(2906002)(7696005)(508600001)(54906003)(52536014)(122000001)(110136005)(316002)(5660300002)(38100700002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?s8t4hgtg5OvIxZvVqnLs09meulkfuccRUfMw8XWH27PDdx9k5jER6uHwzdWg?= =?us-ascii?Q?w4cMiQS6Ec3OwG2R1kNWTJIjkbYlbt8Ii53opHrRwTkHq1M0t2hSxVLKo543?= =?us-ascii?Q?LXi2mnLWa1Nx0yT8Isc3L+34QmxIWSVKusntC2SQkTYdtH8WR8p56xJi4rZZ?= =?us-ascii?Q?vscRshTTj7nljqfAERVtE7yw2IU0cKsAJihQpwP0/TwdvlSeZ5Z0WJqO94pE?= =?us-ascii?Q?49Xrl+YX9/AgLfLV1xFgxu9p+yI4bQ17fTa90+wpoBa9lkghqo2lxlbhNe1e?= =?us-ascii?Q?j82L24I7CYSCwYZzdbgz0A71Ig44ct+x4m6xvXwCjfgF4FWBemiHAUTtmgrk?= =?us-ascii?Q?gp6dJK0HJCi3+XCHojRKzwU2goDwqILwCGdUOYlfSfXuZJnpsdO9QS4g4Drj?= =?us-ascii?Q?ddsVYEeuaPQm8QoY1xujzLgpnfMliGExcsyquiFZ7EUOK+qEJOCtyaFCZupu?= =?us-ascii?Q?/1Hi/7lu9EPteqh+BaW03cia7SGW7inJtRQCbxqbPM6z3PqOX5DWr3Q96kev?= =?us-ascii?Q?taRogcCOOoEBmN1xT9KICazNX2P8+C0n0uYQ8rJvIpCmn4X8FyL4YTmRPuuQ?= =?us-ascii?Q?Q2bk4pFGUNA+wcJqe611wOoA40JjxmI7FTuNudSKVwP6E4funxgrQq9xmOLy?= =?us-ascii?Q?0ZNtijmVuvRAlfoqgNb4Xu9XrTMIOX5Jjw/jvc3OXlvBHTJ/mR3mbhKKVAUJ?= =?us-ascii?Q?to+IQ69Es9I2JW0tOYg8sLOmPBb+mvoRHGTnhLIvpM+Zgoc5AJlHe7WjC/5T?= =?us-ascii?Q?xX84vhshDN0Qlpkcfdp45cVShjK3GCjHTQr3X/8vfkGbUIklXHnwgpzybeJ6?= =?us-ascii?Q?57HmjeKo35thwVyWFlCxGzxKtg3fg/aaEBhAZrU++PmjgvrNS87qPOEJdR1S?= =?us-ascii?Q?8kbkoFltuzcvjfkuBY2x5v08lHjfcp7kJTTEl6THBXeE0bBN1xu2hz1ZNDzo?= =?us-ascii?Q?MSuWzkH+c6MFFo4cvyWiTsUEnYTt6hAddaUQZCc5cCE9UuOGrezSJeQyI2NH?= =?us-ascii?Q?yk76fd8A8SJw4qlHr89ImUT9FGE8fJf21j8Ontu4R+dNcSOmTVSKhBN6MRiz?= =?us-ascii?Q?KqO0nb3reXcqi6rFsM9C49Du/eaypGnzVEx5zicPnP1AuPx8fens5NbNsgHn?= =?us-ascii?Q?tjl5w9NlBDc+9N6ivZCpFPREh9Ovvg91wzMv4EG+9Mf/7oPR8I3yGug5AvFP?= =?us-ascii?Q?5wWwiySkLPg+Xrfeqa+aoZ34YAGlRDa9qO4r934d/vcFbHjhUN6kgom21dWl?= =?us-ascii?Q?Pzr/E99og/q2fAYi65cd2l7vNfbfzGCZ+7CzBIVP/Oq/WaXN0m65/2fZYq+L?= =?us-ascii?Q?YzEDJS83qasm+i2anQXT80pz?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07a12a72-68c5-4b76-ce21-08d988d1c05d X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Oct 2021 14:01:10.5705 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jYA/bbL0PXjaBN9UoXsQYfuG+zM6JbEJ1wgBatrbAE1LOR6yc4mk9xGTAhunrKeSc++vdk88abwH9cu2cTB4Dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR18MB4603 X-Proofpoint-GUID: MsupDfb4sK-eKtROvNJhjsk8Echg4Exl X-Proofpoint-ORIG-GUID: MsupDfb4sK-eKtROvNJhjsk8Echg4Exl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-06_03,2021-10-06_01,2020-04-07_01 Subject: Re: [dpdk-dev] [EXT] [PATCH v3 02/10] crypto/ipsec_mb: add multiprocess support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" > The ipsec_mb SW PMD now has multiprocess support. > The queue-pair IMB_MGR is stored in a memzone instead of being allocated > externally by the Intel IPSec MB library, when v1.1 is used. > If v1.0 is used, multi process is not supported, and allocation is > done as before. > The secondary process needs to reconfigure the queue-pair to allow for > IMB_MGR function pointers be updated. >=20 > Intel IPsec MB library version 1.1 is required for this support. >=20 > Signed-off-by: Ciara Power > --- > doc/guides/rel_notes/release_21_11.rst | 7 ++ > .../crypto/ipsec_mb/rte_ipsec_mb_pmd_ops.c | 110 +++++++++++++++--- > .../ipsec_mb/rte_ipsec_mb_pmd_private.h | 5 + Missed to comment on first patch. rte_ may be skipped from the internal files of the PMD. rte_ is normally added for files which are exposed to the user. > 3 files changed, 106 insertions(+), 16 deletions(-) >=20 > diff --git a/doc/guides/rel_notes/release_21_11.rst > b/doc/guides/rel_notes/release_21_11.rst > index 43d367bcad..3c9d7e19cb 100644 > --- a/doc/guides/rel_notes/release_21_11.rst > +++ b/doc/guides/rel_notes/release_21_11.rst > @@ -62,6 +62,13 @@ New Features > * Added bus-level parsing of the devargs syntax. > * Kept compatibility with the legacy syntax as parsing fallback. >=20 > +* **Added multi-process support for IPsec-mb PMD.** > + > + Added multi-process support to IPsec-mb PMD, which will add support > + for PMDs that are moved to use this shared framework. > + This feature makes use of an intel-ipsec-mb API found in v1.1, > + which is the minimum required version to use this multi-process suppor= t. > + I believe first new PMD framework should be introduced in the release note = and a sub bullet may be added to specify multi process support. > * **Updated Marvell cnxk crypto PMD.** >=20 > * Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for > CN10K. > diff --git a/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_ops.c > b/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_ops.c > index 1146297216..c7bcfd3dce 100644 > --- a/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_ops.c > +++ b/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_ops.c > @@ -9,6 +9,8 @@ >=20 > #include "rte_ipsec_mb_pmd_private.h" >=20 > +#define IMB_MP_REQ_VER_STR "1.1.0" > + > /** Configure device */ > int > ipsec_mb_pmd_config(__rte_unused struct rte_cryptodev *dev, > @@ -98,10 +100,20 @@ ipsec_mb_pmd_qp_release(struct rte_cryptodev > *dev, uint16_t qp_id) > struct ipsec_mb_qp *qp =3D dev->data->queue_pairs[qp_id]; > struct rte_ring *r =3D NULL; >=20 > - if (qp !=3D NULL) { > + if (qp !=3D NULL && rte_eal_process_type() =3D=3D RTE_PROC_PRIMARY) { > r =3D rte_ring_lookup(qp->name); > if (r) > rte_ring_free(r); > + > +#if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM > + if (qp->mb_mgr) > + free_mb_mgr(qp->mb_mgr); > +#else > + if (qp->mb_mgr_mz) { > + rte_memzone_free(qp->mb_mgr_mz); > + qp->mb_mgr =3D NULL; > + } > +#endif > rte_free(qp); > dev->data->queue_pairs[qp_id] =3D NULL; > } > @@ -154,6 +166,42 @@ static struct rte_ring > RING_F_SP_ENQ | RING_F_SC_DEQ); > } >=20 > +#if IMB_VERSION(1, 1, 0) <=3D IMB_VERSION_NUM > +static IMB_MGR * > +ipsec_mb_pmd_alloc_mb_from_memzone(const struct rte_memzone > **mb_mgr_mz, > + const char *mb_mgr_mz_name) > +{ > + IMB_MGR *mb_mgr; > + > + if (rte_eal_process_type() =3D=3D RTE_PROC_PRIMARY) { > + *mb_mgr_mz =3D rte_memzone_lookup(mb_mgr_mz_name); > + if (*mb_mgr_mz =3D=3D NULL) { > + *mb_mgr_mz =3D > rte_memzone_reserve(mb_mgr_mz_name, > + imb_get_mb_mgr_size(), > + rte_socket_id(), 0); > + } > + if (*mb_mgr_mz =3D=3D NULL) { > + IPSEC_MB_LOG(DEBUG, "Error allocating memzone > for %s", > + mb_mgr_mz_name); > + return NULL; > + } > + mb_mgr =3D imb_set_pointers_mb_mgr((*mb_mgr_mz)->addr, > 0, 1); > + init_mb_mgr_auto(mb_mgr, NULL); > + } else { > + *mb_mgr_mz =3D rte_memzone_lookup(mb_mgr_mz_name); > + if (*mb_mgr_mz =3D=3D NULL) { > + IPSEC_MB_LOG(ERR, > + "Secondary can't find %s mz, did primary > create it?", > + mb_mgr_mz_name); > + return NULL; > + } > + mb_mgr =3D imb_set_pointers_mb_mgr((*mb_mgr_mz)->addr, > 0, 0); > + init_mb_mgr_auto(mb_mgr, NULL); > + } > + return mb_mgr; > +} > +#endif > + > /** Setup a queue pair */ > int > ipsec_mb_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id, > @@ -167,16 +215,44 @@ ipsec_mb_pmd_qp_setup(struct rte_cryptodev > *dev, uint16_t qp_id, > uint32_t qp_size; > int ret =3D -1; >=20 > - /* Free memory prior to re-allocation if needed. */ > - if (dev->data->queue_pairs[qp_id] !=3D NULL) > - ipsec_mb_pmd_qp_release(dev, qp_id); > + if (rte_eal_process_type() =3D=3D RTE_PROC_SECONDARY) { > +#if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM > + IPSEC_MB_LOG(ERR, "The intel-ipsec-mb version (%s) does > not support multiprocess," > + "the minimum version required for this > feature is %s.", > + IMB_VERSION_STR, IMB_MP_REQ_VER_STR); > + return -EINVAL; > +#endif > + if (dev->data->queue_pairs[qp_id] !=3D NULL) > + qp =3D dev->data->queue_pairs[qp_id]; > + } else { > + /* Free memory prior to re-allocation if needed. */ > + if (dev->data->queue_pairs[qp_id] !=3D NULL) > + ipsec_mb_pmd_qp_release(dev, qp_id); > + > + qp_size =3D sizeof(*qp) + pmd_data->qp_priv_size; > + /* Allocate the queue pair data structure. */ > + qp =3D rte_zmalloc_socket("IPSEC PMD Queue Pair", qp_size, > + RTE_CACHE_LINE_SIZE, socket_id); > + if (qp =3D=3D NULL) > + return -ENOMEM; > + } > + > +#if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM > + qp->mb_mgr =3D alloc_init_mb_mgr(); > +#else > + char mz_name[IPSEC_MB_MAX_MZ_NAME]; > + snprintf(mz_name, sizeof(mz_name), "IMB_MGR_DEV_%d_QP_%d", > + dev->data->dev_id, qp_id); > + qp->mb_mgr =3D ipsec_mb_pmd_alloc_mb_from_memzone(&(qp- > >mb_mgr_mz), > + mz_name); _pmd_ may be skipped from the internal APIs. The function names are pretty = long. > +#endif > + if (qp->mb_mgr =3D=3D NULL) { > + ret =3D -ENOMEM; > + goto qp_setup_cleanup; > + } >=20 > - qp_size =3D sizeof(*qp) + pmd_data->qp_priv_size; > - /* Allocate the queue pair data structure. */ > - qp =3D rte_zmalloc_socket("IPSEC PMD Queue Pair", qp_size, > - RTE_CACHE_LINE_SIZE, socket_id); > - if (qp =3D=3D NULL) > - return -ENOMEM; > + if (rte_eal_process_type() =3D=3D RTE_PROC_SECONDARY) > + return 0; >=20 > qp->id =3D qp_id; > dev->data->queue_pairs[qp_id] =3D qp; > @@ -194,12 +270,6 @@ ipsec_mb_pmd_qp_setup(struct rte_cryptodev > *dev, uint16_t qp_id, > goto qp_setup_cleanup; > } >=20 > - qp->mb_mgr =3D alloc_init_mb_mgr(); > - if (!qp->mb_mgr) { > - ret =3D -ENOMEM; > - goto qp_setup_cleanup; > - } > - > memset(&qp->stats, 0, sizeof(qp->stats)); >=20 > if (pmd_data->queue_pair_configure) { > @@ -211,8 +281,15 @@ ipsec_mb_pmd_qp_setup(struct rte_cryptodev > *dev, uint16_t qp_id, > return 0; >=20 > qp_setup_cleanup: > +#if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM > if (qp->mb_mgr) > free_mb_mgr(qp->mb_mgr); > +#else > + if (rte_eal_process_type() =3D=3D RTE_PROC_SECONDARY) > + return ret; > + if (qp->mb_mgr_mz) > + rte_memzone_free(qp->mb_mgr_mz); > +#endif > if (qp) > rte_free(qp); > return ret; > @@ -269,6 +346,7 @@ ipsec_mb_pmd_sym_session_configure( >=20 > set_sym_session_private_data(sess, dev->driver_id, > sess_private_data); >=20 > + free_mb_mgr(mb_mgr); > return 0; > } >=20 > diff --git a/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_private.h > b/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_private.h > index 754259aa59..35860b1b10 100644 > --- a/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_private.h > +++ b/drivers/crypto/ipsec_mb/rte_ipsec_mb_pmd_private.h > @@ -18,6 +18,9 @@ > /* Maximum length for digest */ > #define DIGEST_LENGTH_MAX 64 >=20 > +/* Maximum length for memzone name */ > +#define IPSEC_MB_MAX_MZ_NAME 32 > + > enum ipsec_mb_vector_mode { > IPSEC_MB_NOT_SUPPORTED =3D 0, > IPSEC_MB_SSE, > @@ -95,6 +98,8 @@ struct ipsec_mb_qp { > */ > IMB_MGR *mb_mgr; > /* Multi buffer manager */ > + const struct rte_memzone *mb_mgr_mz; > + /* Shared memzone for storing mb_mgr */ > __extension__ uint8_t additional_data[0]; > /**< Storing PMD specific additional data */ > }; > -- > 2.25.1