From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CEBABA0542; Tue, 4 Oct 2022 20:12:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD92E40DFB; Tue, 4 Oct 2022 20:12:57 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 28D6040DDC for ; Tue, 4 Oct 2022 20:12:56 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2947j8hA019701; Tue, 4 Oct 2022 11:12:55 -0700 Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3k0gqf28c0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Oct 2022 11:12:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q4RA8cueK7J3YzOj9HntYuQ5N3FpPa9r1xEVlWrmarq/b2XZvxtO1lxj/OWNaAtHUPwgN2FyyNxYoJM4Su/TEaPdkmIDMLrnMh1crHxZ6LysyOYonHVHUOvZFFr28JzyLtlgQc5nQuSijigx4ykKOF4XULJ5ZLxwzrfoSQDMSUE4q66ZnD657lvFBe0E0mF/pJFDd3aG7P+TlP21AaocDg7fnqbPebMMZJ9tnqDCjlREOUf80Gkjzr3j+AEqx7NVGaA8yhA5ONtgbCaqGCsZDlS/8nkQBq8UTtrYgn+ect+SDtjOA0VXhvRZKUC6bAUDDN3aCnlWAWa6N0EpshCTKQ== 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=E6rumfFOAt7tPAxP4bR4JSNAz4CuiFjzuWQ3mvuI2J4=; b=N/qQsgF//aEdB7Cs+1biHURbSb01nFvR52wfqyXhj6+ECTrRTFm4blT2HkWPUtkeIT9gOzW8ofIArOdOXImiTxUUA8TFgObzAALGVs3cnhAOCALeXIb4FRAMXV+I2hRl27qF//C1AHxdlIRjqAb+FMY14WqUguNXwK4BWP0r3S9HlqgcmGuX5fTNhkHCghnzUDDXE/PVeuXJsNAxcGvus+N+ovmKEX1vu4qa+WsysbvjVZ/b6FY+mCCUmUtWgR1/1Bj5Xri6dJkNfcd4yMW5iQZfWviWIExEYImBNY6TlGmagV3080dsABtopjt71jmfRuQf4g6xm/P7tIkLRa/ySA== 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=E6rumfFOAt7tPAxP4bR4JSNAz4CuiFjzuWQ3mvuI2J4=; b=srAZHnN+/uXRShN4ZfBvIpF9KVvrqDRAF2QpbGIuV1/kOKeFQJKAlL6htRNTy/F0fP78WDdWqVRckX4AZcE2p9C0W8dgj8vfiTcPS4Twwo7qNtgLlBK8cPOYSSwPY3EpvmPLV3HleRYjdpTEo9gezFnYal7xi/FjAzvZF73UjPI= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CH0PR18MB4322.namprd18.prod.outlook.com (2603:10b6:610:d1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.31; Tue, 4 Oct 2022 18:12:53 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::ee27:3b96:a580:ba9e]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::ee27:3b96:a580:ba9e%9]) with mapi id 15.20.5676.024; Tue, 4 Oct 2022 18:12:52 +0000 From: Akhil Goyal To: Kai Ji , "dev@dpdk.org" Subject: RE: [EXT] [dpdk-dev v3 1/1] lib/cryptodev: multi-process IPC request handler Thread-Topic: [EXT] [dpdk-dev v3 1/1] lib/cryptodev: multi-process IPC request handler Thread-Index: AQHY1rCQltv8iHKgkEWt+ECWO3vFOq3+iOUg Date: Tue, 4 Oct 2022 18:12:52 +0000 Message-ID: References: <20221002014333.41385-1-kai.ji@intel.com> <20221002224436.39571-1-kai.ji@intel.com> In-Reply-To: <20221002224436.39571-1-kai.ji@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CH0PR18MB4322:EE_ x-ms-office365-filtering-correlation-id: dc65c81b-d9e7-49cb-6d25-08daa6340df0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7LclpCLXIyPBKVTcmgQpPsn0mMI2BETzAx3NtK1RDdn1s6i1XtCjj9UHF4yEsMzFRKDh1aW+bOufBMKMdeiMeU+Gratt7kf7lqR5fmgqM36wO3NZ6/eRj2saMfnFGjOfpFayvSYqZttPhb0hihvcVPglqqY5FYtQQhR/Xhq00uJwq24wM4TiYheIu0GB1TFe0dgFqhspn19JGH3Gqw21g1pZhE0cDZu6Ru4qXT6lnZtXNfgzQc9zlJYBiURaSeEEcL4MEfVfIWWCd+j3X/DvFnsrTYUOMymdd7v/hcm77/zON8TFC6fWAtI641OjdlsgwzU6OGOvy7UHtRcA/xgDNNjacGFrYIM/TVkysfQs0FpN1bp8eJtA1SwnspasJRbwlXtSp4D00mL3MgD3G1XEorYZL+ssfU+tO3SAqzD4KpFOZj82msn1+MNPdNM9RCuSb35+7YDS6RG76IzuOhiLYXVaA5gu3OItURs6cdUuAPjiOBC9z+wWbiQmkML4vKdIgLEDtpW109FSm4Fds21L/u5Lj+gNG1X5ES7F8RD0M0ZuiCLT9L2qdSZrXaqv5yzOsgIUvDW8cPORzHWOK0aqo7tsUQm+B+4spxPpx5KOlcQP/Mm/ybOgJadG3uhEHzjavvEtsRNYjozchK1pUMInW8AAeHTiaSovlYKXaxjbVo63T4IalNajA3hR6pnpPsdN7vP0l8uGCkvouOiyfIvZvkA/G0XoB2ev7TD8Jog+KheV5kUwvAWXOgsanqlNu92kCxpUt19Ivb3prwdOLAd6zg== 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:(13230022)(4636009)(39860400002)(136003)(396003)(346002)(376002)(366004)(451199015)(71200400001)(478600001)(316002)(33656002)(186003)(122000001)(8936002)(5660300002)(38070700005)(2906002)(66476007)(66946007)(8676002)(66556008)(66446008)(76116006)(64756008)(6506007)(7696005)(110136005)(55236004)(26005)(55016003)(52536014)(9686003)(86362001)(83380400001)(41300700001)(38100700002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?OsD1QPKzIOEhO+0NbbZ2v2dVsdffXX6yAG1+Uh9yzRkFWMrdLPufgd2VVIe+?= =?us-ascii?Q?6dGI8AwOBUr/Ckk783g1pJUvVmgkZGxEE3fHAmBtAR0Bzk1J2Qg8yJzWkBdd?= =?us-ascii?Q?nMaNaUnedo4cnz05P0K9sqr/FUuH4jHehKk+irB74vYyczfFGvn47rIJvg7F?= =?us-ascii?Q?toJSE0jdFMMzZTZMU1WapF3iF+5OHEuiJ60EP4Ib1S4r2lWrTHz6uGov+cBM?= =?us-ascii?Q?VwM/wiZXOjcxE9/KmG++ETwYzvtQ+Emi4W7SKh8bisdXXfRvtTr8kgcAwgLH?= =?us-ascii?Q?aJIK/cQrz7sQHXqiKaT6imp7zJBWEKM1N5k4/W0eME46uFpPCN7vqhwxVDAO?= =?us-ascii?Q?2En7kIr7Xv7jnZ/+5lNXop3L9S821nv9YUgcLtuOf1Ok/3vzgXtiPksYJcVj?= =?us-ascii?Q?e1dKzQfZhafJU/N15OlY2VARWrqIatJIH02nUR7yNrxVEo1GAEznrrEggNz0?= =?us-ascii?Q?Q2bv6RL0lLIRZf3IN5QShN/t9eGh9QM/pSw8a0LrI3QHlf579AjnCLZiydzi?= =?us-ascii?Q?Cr9GRFH2VaBB/JaKStA7vohKRYnNL0EjE64+qpG7C6xB3BAEwkdHpbMovUf9?= =?us-ascii?Q?0TW+5aRBO1Wx2QCpTmCKbLdRnrm99Ar+n6LGI8yEDrQu16PuYB45DYxU733M?= =?us-ascii?Q?lQojSfrs3r2RmhSd1GP3aph1c2PIcVpiC3uHN0PQA+qjQn193LUh6EM8pcZ5?= =?us-ascii?Q?GU5Kiu5t6VEAB2Is0mxotVT6p4fRUwC9MrUOtM0kcFZgzsl+UdftbmJ2OIBv?= =?us-ascii?Q?DKLrP05GxZcvzKn3yoaPudkZ6PoNCnnl31TFf+zkO4Y84jSbuzKv8qvhl0dp?= =?us-ascii?Q?iJDC0VxCQKSxpQndYtGOzbXKHORx70QPy63UkFPgem5Y7W4qLqqBRbghsaKE?= =?us-ascii?Q?rJcdbLh6evAQocTR5Vzbk0s8uQK+cCEZZZbiPVGVvk1Jowm4x1rBHSAvoaGW?= =?us-ascii?Q?tQwmmFs27NDdy6sybO5Frt+Z1THWyA6kt63m69agCzTQrjnP8Vlg+455kA3/?= =?us-ascii?Q?cv0ZGBZrv37PTX2uSGfUPuUxiIuxvbPhBVk6ET+AQ/y5W7lCxrSM9PCbxgK2?= =?us-ascii?Q?VysaEoF0VeXod81LRKFTJBoVa+PUtplhrwg0sgdTvo8GCTncktx1c2YeyFJt?= =?us-ascii?Q?GRceX0VpVJhd/lAmd+3KTDnv7phNpG2Ci7RhDvSgOxOLUW+nYx/sVf2Hp3Cu?= =?us-ascii?Q?ljkOLDO/aRFN8/RhwCgUbxcjZH4zkxvxXofKl+2jUxPurX2SmN3hlJUdkxLE?= =?us-ascii?Q?3p2esaAKPnYRT8I8V28zuB7saXqbe2SNxf8T7IXybIyW9utctwsNp1W5kbWA?= =?us-ascii?Q?TdBu8Yhp/LisiSL0amwr6Y0JtoyXXmBK9SuiVzY+fm4piFpfpqnFCPDbhfKB?= =?us-ascii?Q?giKA7+3kD8SqVrh84/eXjh8MbExJc2PlaX2fYfnB/hhcqXc4rTWp80edM4RO?= =?us-ascii?Q?WsffKUr/jvLxzUeZ7RCWBU/4fiSPBme6EvHc8pQ3vlP4SwXvAIQ/qm2wHRte?= =?us-ascii?Q?6lXTxezmdtE4OpXaNI47YfOPxfcSpAt1SMWmSnXu65EFGhJVXMnDGBMSaU4g?= =?us-ascii?Q?KBAzHiJgLmoU2zTUExQ=3D?= 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: dc65c81b-d9e7-49cb-6d25-08daa6340df0 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2022 18:12:52.8560 (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: 2SZBlkJbKaLDzcmykLw0eFwUHD//Z7vORGT7LVkzUPJxKgbasAVDtuqfm6a4vQtiTYwdVm8+hImXKZQrd+KsVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR18MB4322 X-Proofpoint-GUID: FnKIRoap4t4_6vBvtRdRc8-vvfucNQyl X-Proofpoint-ORIG-GUID: FnKIRoap4t4_6vBvtRdRc8-vvfucNQyl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-10-04_08,2022-09-29_03,2022-06-22_01 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 > This patch add a function to support queue-pair configuration > request to allow the primary or secondary process to setup/free the > queue-pair via IPC handler. Add in queue pair in-used by process id > array in rte_cryptodev_data for pid tracking. >=20 > Signed-off-by: Kai Ji I had a comment on v1, that you should include all PMD maintainers as well When sending any major change in library layer. But I think you have not read the comments made on v1. > --- > v3: > - addin missing free function for qp_in_use_by_pid >=20 > v2: > - code rework > --- > lib/cryptodev/cryptodev_pmd.h | 3 +- > lib/cryptodev/rte_cryptodev.c | 92 +++++++++++++++++++++++++++++++++++ > lib/cryptodev/rte_cryptodev.h | 37 ++++++++++++++ > lib/cryptodev/version.map | 2 + > 4 files changed, 133 insertions(+), 1 deletion(-) >=20 > diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.= h > index 09ba952455..f404604963 100644 > --- a/lib/cryptodev/cryptodev_pmd.h > +++ b/lib/cryptodev/cryptodev_pmd.h > @@ -78,7 +78,8 @@ struct rte_cryptodev_data { > void **queue_pairs; > /** Number of device queue pairs. */ > uint16_t nb_queue_pairs; > - > + /** Array of process id used for queue pairs **/ > + uint16_t *qp_in_use_by_pid; Why array? And if an array, how will its depth will be calculated. I commented on v1, that the in_use pid can be stored inside queue private d= ata. > /** PMD-specific private data */ > void *dev_private; > } __rte_cache_aligned; > diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.= c > index 9e76a1c72d..dab6a37bff 100644 > --- a/lib/cryptodev/rte_cryptodev.c > +++ b/lib/cryptodev/rte_cryptodev.c > @@ -49,6 +49,9 @@ struct rte_crypto_fp_ops > rte_crypto_fp_ops[RTE_CRYPTO_MAX_DEVS]; > /* spinlock for crypto device callbacks */ > static rte_spinlock_t rte_cryptodev_cb_lock =3D RTE_SPINLOCK_INITIALIZER= ; >=20 > +/* crypto queue pair config */ > +#define CRYPTODEV_MP_REQ "cryptodev_mp_request" > + > /** > * The user application callback description. > * > @@ -1050,6 +1053,9 @@ rte_cryptodev_pmd_release_device(struct > rte_cryptodev *cryptodev) > return ret; > } >=20 > + if (cryptodev->data->qp_in_use_by_pid) > + rte_free(cryptodev->data->qp_in_use_by_pid); > + > ret =3D rte_cryptodev_data_free(dev_id, > &cryptodev_globals.data[dev_id]); > if (ret < 0) > return ret; > @@ -1138,6 +1144,21 @@ rte_cryptodev_queue_pairs_config(struct > rte_cryptodev *dev, uint16_t nb_qpairs, >=20 > } > dev->data->nb_queue_pairs =3D nb_qpairs; > + > + if (dev->data->qp_in_use_by_pid =3D=3D NULL) { > + dev->data->qp_in_use_by_pid =3D rte_zmalloc_socket( > + "cryptodev->qp_in_use_by_pid", > + sizeof(dev->data->qp_in_use_by_pid[0]) * > + dev_info.max_nb_queue_pairs, > + RTE_CACHE_LINE_SIZE, socket_id); > + if (dev->data->qp_in_use_by_pid =3D=3D NULL) { > + CDEV_LOG_ERR("failed to get memory for qp meta > data, " > + "nb_queues %u", > + nb_qpairs); > + return -(ENOMEM); > + } > + } > + > return 0; > } >=20 > @@ -1400,6 +1421,77 @@ rte_cryptodev_queue_pair_setup(uint8_t dev_id, > uint16_t queue_pair_id, > socket_id); > } >=20 > +static int > +rte_cryptodev_ipc_request(const struct rte_mp_msg *mp_msg, const void > *peer) > +{ > + struct rte_mp_msg mp_res; > + struct rte_cryptodev_mp_param *res =3D > + (struct rte_cryptodev_mp_param *)mp_res.param; > + const struct rte_cryptodev_mp_param *param =3D > + (const struct rte_cryptodev_mp_param *)mp_msg->param; > + > + int ret; > + struct rte_cryptodev *dev; > + uint16_t *qps_in_used_by_pid; > + int dev_id =3D param->dev_id; > + int qp_id =3D param->qp_id; > + struct rte_cryptodev_qp_conf *queue_conf =3D param->queue_conf; > + > + res->result =3D -EINVAL; > + if (!rte_cryptodev_is_valid_dev(dev_id)) { > + CDEV_LOG_ERR("Invalid dev_id=3D%" PRIu8, dev_id); > + goto out; > + } > + > + if (!rte_cryptodev_get_qp_status(dev_id, qp_id)) > + goto out; > + > + dev =3D &rte_crypto_devices[dev_id]; > + qps_in_used_by_pid =3D dev->data->qp_in_use_by_pid; > + > + switch (param->type) { > + case RTE_CRYPTODEV_MP_REQ_QP_SET: > + ret =3D rte_cryptodev_queue_pair_setup(dev_id, qp_id, > + queue_conf, param->socket_id); > + if (!ret) > + qps_in_used_by_pid[qp_id] =3D param->process_id; > + res->result =3D ret; > + break; > + case RTE_CRYPTODEV_MP_REQ_QP_FREE: > + if ((rte_eal_process_type() =3D=3D RTE_PROC_SECONDARY) && > + (qps_in_used_by_pid[qp_id] !=3D param->process_id)) { > + CDEV_LOG_ERR("Unable to release qp_id=3D%" PRIu8, > qp_id); > + goto out; > + } > + > + ret =3D (*dev->dev_ops->queue_pair_release)(dev, qp_id); > + if (!ret) > + qps_in_used_by_pid[qp_id] =3D 0; > + > + res->result =3D ret; > + break; > + default: > + CDEV_LOG_ERR("invalid mp request type\n"); > + } > + > +out: > + ret =3D rte_mp_reply(&mp_res, peer); > + return ret; > +} > + > +int rte_cryptodev_mp_request_register(void) > +{ > + RTE_ASSERT(rte_eal_process_type() =3D=3D RTE_PROC_PRIMARY); > + return rte_mp_action_register(CRYPTODEV_MP_REQ, > + rte_cryptodev_ipc_request); > +} > + > +void rte_cryptodev_mp_request_unregister(void) > +{ > + RTE_ASSERT(rte_eal_process_type() =3D=3D RTE_PROC_PRIMARY); > + rte_mp_action_unregister(CRYPTODEV_MP_REQ); > +} > + It looks an incomplete patch right now. - Documentation is missing on how this feature will be used. - Test cases? - PMD implementation is key part for this feature to work. I believe it is better to defer this to next release as we don't have a cla= rity on how to use this. > struct rte_cryptodev_cb * > rte_cryptodev_add_enq_callback(uint8_t dev_id, > uint16_t qp_id, > diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.= h > index 56f459c6a0..d8cadebd0c 100644 > --- a/lib/cryptodev/rte_cryptodev.h > +++ b/lib/cryptodev/rte_cryptodev.h > @@ -539,6 +539,24 @@ enum rte_cryptodev_event_type { > RTE_CRYPTODEV_EVENT_MAX /**< max value of this enum */ > }; >=20 > +/* Request types for IPC. */ > +enum rte_cryptodev_mp_req_type { > + RTE_CRYPTODEV_MP_REQ_NONE, > + RTE_CRYPTODEV_MP_REQ_QP_SET, > + RTE_CRYPTODEV_MP_REQ_QP_FREE > +}; Doxygen comments missing. > + > +/* Parameters for IPC. */ > +struct rte_cryptodev_mp_param { > + enum rte_cryptodev_mp_req_type type; > + int dev_id; > + int qp_id; > + int socket_id; > + uint16_t process_id; > + struct rte_cryptodev_qp_conf *queue_conf; > + int result; > +}; > + Doxygen comments??? Writing just "Parameters for IPC" does not make any sense and it is not cle= ar How it will be used. > /** Crypto device queue pair configuration structure. */ > struct rte_cryptodev_qp_conf { > uint32_t nb_descriptors; /**< Number of descriptors per queue pair */ > @@ -769,6 +787,25 @@ extern int > rte_cryptodev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id, > const struct rte_cryptodev_qp_conf *qp_conf, int socket_id); >=20 > +/** > + * Register multi process request IPC handler > + * This comment is not sufficient to explain what this API will do exactly. > + * @return > + * - 0: Success registered > + * - 1: Failed registration failed > + * - -EINVAL: device was not configured > + */ > +__rte_experimental > +int > +rte_cryptodev_mp_request_register(void); > + > +/** > + * Unregister multi process unrequest IPC handler > + */ > +__rte_experimental > +void > +rte_cryptodev_mp_request_unregister(void); > + > /** > * Get the status of queue pairs setup on a specific crypto device > * > diff --git a/lib/cryptodev/version.map b/lib/cryptodev/version.map > index 6d9b3e01a6..4130c39e7c 100644 > --- a/lib/cryptodev/version.map > +++ b/lib/cryptodev/version.map > @@ -157,6 +157,8 @@ EXPERIMENTAL { > __rte_cryptodev_trace_sym_session_get_user_data; > __rte_cryptodev_trace_sym_session_set_user_data; > __rte_cryptodev_trace_count; > + rte_cryptodev_mp_request_register; > + rte_cryptodev_mp_request_unregister; > }; >=20 > INTERNAL { > -- > 2.17.1