From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D5704A046B for ; Fri, 28 Jun 2019 07:46:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6B2B75B34; Fri, 28 Jun 2019 07:46:13 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 2642C4F94 for ; Fri, 28 Jun 2019 07:46:12 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5S5jZST023587; Thu, 27 Jun 2019 22:46:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=ormcWP0gIu/vHq0H/u8HnESr2dEvV00AkudYme+pU2E=; b=qrFE7rZcm0FAf27d4/zATFp6o4b9vqVcbzZ4XyhCxtGTOpD5EKat33zrvTLp5raFZw8h e3Cur5EzOyRBasv4nt0zhhpmbynzvozX7eKiAAVFS9OdOzH8IeIocRK2TlSmRkVOx/U8 blY0e6FEKzQKnQ/kMFvYkYV9QDyrOxJaEPuczFiAhhNUMjIpA6AfSrnRLDHoV3pwdYVV K1iyw1+6uCii/A0ScD5MZW1FFtCNCtKSthlS+rgR7tuh5JeANZVltiv4B1hvEZ8gnirB BNkodYRlU80NwbYnjlVl3NiW3XLglnw3NgQkQ33S7fuw1AnI16ildOBkwyYWiKi2ndsf Ng== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 2tcvnhbugk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 27 Jun 2019 22:46:10 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 27 Jun 2019 22:46:09 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (104.47.33.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Thu, 27 Jun 2019 22:46:09 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ormcWP0gIu/vHq0H/u8HnESr2dEvV00AkudYme+pU2E=; b=JzbtswKAw7YH9ODglepkEgUZ+79x6qjS6XCdteh6z6XKFl/RxMT1dHHhocxV4wRkPPmv5MaUCrzkkwbDh5mAonroiODK+SwpiqNxs9Jue/7MTCsA49HyZQ5B5PB3eknTUdTx1ZYPDFihV7cOYXH8EuKCt7eXc3/IK4/WEBJCSq4= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB2781.namprd18.prod.outlook.com (20.179.20.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2032.18; Fri, 28 Jun 2019 05:46:06 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::595e:3b6c:3d12:7285]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::595e:3b6c:3d12:7285%7]) with mapi id 15.20.2008.018; Fri, 28 Jun 2019 05:46:06 +0000 From: Anoob Joseph To: Junxiao Shi , "dev@dpdk.org" , Akhil Goyal CC: "De Lara Guarch, Pablo" Thread-Topic: [EXT] [dpdk-dev] [PATCH] cryptodev: free memzone when releasing cryptodev Thread-Index: AQHVFw4cNLSHOgvaXkOoczdMlBQKZKawtzYg Date: Fri, 28 Jun 2019 05:46:06 +0000 Message-ID: References: <201905301724.x4UHOJN7016223@lectura.cs.arizona.edu> In-Reply-To: <201905301724.x4UHOJN7016223@lectura.cs.arizona.edu> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [115.113.156.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9c82ec88-7abf-47aa-00ec-08d6fb8bea35 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR18MB2781; x-ms-traffictypediagnostic: MN2PR18MB2781: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2657; x-forefront-prvs: 00826B6158 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(346002)(366004)(136003)(376002)(39860400002)(199004)(189003)(13464003)(53936002)(2906002)(305945005)(6116002)(6246003)(3846002)(55016002)(6306002)(74316002)(81166006)(81156014)(8936002)(8676002)(966005)(9686003)(4326008)(25786009)(14454004)(7736002)(478600001)(5024004)(256004)(14444005)(186003)(66066001)(33656002)(26005)(316002)(110136005)(5660300002)(486006)(52536014)(446003)(11346002)(476003)(66556008)(66476007)(66946007)(73956011)(64756008)(76176011)(76116006)(66446008)(102836004)(2501003)(6506007)(53546011)(55236004)(99286004)(7696005)(71200400001)(71190400001)(86362001)(68736007)(229853002)(6436002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB2781; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 9Uxu8ZaHMmG+HD98G3Qs4K5F2ikLn8L675Z4PNLtkLqrQLogFaYavctNXAx7voRtM6FLKIdOEhbHMBxQ2GkK+1VtLwNEIs0uxyLPxOnHD1x3LvhrCnGLAZ45fzserHceGHKp76Zb2S4cJK6VclW3T+EzWX7/yOdpCmL0saw1TfyETiVXALKfeEX8XVknllAZMYtrWVGDakwfHBh/L9QMDaRWd1mbCX3VRuAqMvIpefJWH01vzz+81h+BGb6JVF2V80WczeUKsn/H7qsdReL4N2l3asudiuz+KMP+qJFKF54g83P5G2jt4/vH5uqnreHrmSdmXCzRC3hQAcQKCwe9ms/LWDWTbPzFkiOtJGcobT3H8zLxhasjX/ra6rDCusBbknkbXwgB7Gso0I4RZlir5f+/l1iM14/vLWkVXt7vl5U= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 9c82ec88-7abf-47aa-00ec-08d6fb8bea35 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2019 05:46:06.6093 (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: anoobj@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB2781 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-28_02:, , signatures=0 Subject: Re: [dpdk-dev] [EXT] [PATCH] cryptodev: free memzone when releasing cryptodev 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" Hi, Please see inline. Thanks, Anoob > -----Original Message----- > From: dev On Behalf Of Junxiao Shi > Sent: Thursday, May 30, 2019 10:38 PM > To: dev@dpdk.org > Subject: [EXT] [dpdk-dev] [PATCH] cryptodev: free memzone when releasing > cryptodev >=20 > External Email >=20 > ---------------------------------------------------------------------- > When a cryptodev is created in a primary process, rte_cryptodev_data_allo= c > reserves a memzone. > However, this memzone was not released when the cryptodev is uninitialize= d. > After that, new cryptodev cannot be created due to memzone name conflict. >=20 > This commit frees the memzone when a cryptodev is uninitialized, fixing t= his > bug. This approach is chosen instead of keeping and reusing the old memzo= ne, > because the new cryptodev could belong to a different NUMA socket. >=20 > Also, rte_cryptodev_data pointer is now properly recorded in > cryptodev_globals.data array. >=20 > Bugzilla ID: 105 >=20 > Signed-off-by: Junxiao Shi > --- > lib/librte_cryptodev/rte_cryptodev.c | 44 > +++++++++++++++++++++++++++++++----- > 1 file changed, 38 insertions(+), 6 deletions(-) >=20 > diff --git a/lib/librte_cryptodev/rte_cryptodev.c > b/lib/librte_cryptodev/rte_cryptodev.c > index 00c2cf4..666dfea 100644 > --- a/lib/librte_cryptodev/rte_cryptodev.c > +++ b/lib/librte_cryptodev/rte_cryptodev.c > @@ -653,6 +653,31 @@ rte_cryptodev_data_alloc(uint8_t dev_id, struct > rte_cryptodev_data **data, > return 0; > } >=20 > +static inline int > +rte_cryptodev_data_free(uint8_t dev_id, struct rte_cryptodev_data > +**data) { > + char mz_name[RTE_CRYPTODEV_NAME_MAX_LEN]; > + const struct rte_memzone *mz; > + int n; > + > + /* generate memzone name */ > + n =3D snprintf(mz_name, sizeof(mz_name), "rte_cryptodev_data_%u", > dev_id); > + if (n >=3D (int)sizeof(mz_name)) > + return -EINVAL; [Anoob] Is the above check needed? > + > + mz =3D rte_memzone_lookup(mz_name); > + if (mz =3D=3D NULL) > + return -ENOMEM; [Anoob] Is the return value correct? Shouldn't it be -EINVAL? @Akhil, thoughts? > + > + RTE_ASSERT(*data =3D=3D mz->addr); > + *data =3D NULL; > + > + if (rte_eal_process_type() =3D=3D RTE_PROC_PRIMARY) > + return rte_memzone_free(mz); > + > + return 0; > +} > + > static uint8_t > rte_cryptodev_find_free_device_index(void) > { > @@ -687,16 +712,16 @@ rte_cryptodev_pmd_allocate(const char *name, int > socket_id) > cryptodev =3D rte_cryptodev_pmd_get_dev(dev_id); >=20 > if (cryptodev->data =3D=3D NULL) { > - struct rte_cryptodev_data *cryptodev_data =3D > - cryptodev_globals.data[dev_id]; > + struct rte_cryptodev_data **cryptodev_data =3D > + &cryptodev_globals.data[dev_id]; >=20 > - int retval =3D rte_cryptodev_data_alloc(dev_id, &cryptodev_data, > + int retval =3D rte_cryptodev_data_alloc(dev_id, cryptodev_data, > socket_id); >=20 > - if (retval < 0 || cryptodev_data =3D=3D NULL) > + if (retval < 0 || *cryptodev_data =3D=3D NULL) > return NULL; >=20 > - cryptodev->data =3D cryptodev_data; > + cryptodev->data =3D *cryptodev_data; >=20 > strlcpy(cryptodev->data->name, name, > RTE_CRYPTODEV_NAME_MAX_LEN); > @@ -724,13 +749,20 @@ rte_cryptodev_pmd_release_device(struct > rte_cryptodev *cryptodev) > if (cryptodev =3D=3D NULL) > return -EINVAL; >=20 > + uint8_t dev_id =3D cryptodev->data->dev_id; > + [Anoob] Variables need to be declared at the start of the function. https://doc.dpdk.org/guides/contributing/coding_style.html > /* Close device only if device operations have been set */ > if (cryptodev->dev_ops) { > - ret =3D rte_cryptodev_close(cryptodev->data->dev_id); > + ret =3D rte_cryptodev_close(dev_id); > if (ret < 0) > return ret; > } >=20 > + struct rte_cryptodev_data **cryptodev_data =3D > &cryptodev_globals.data[dev_id]; [Anoob] Same comment as above > + ret =3D rte_cryptodev_data_free(dev_id, cryptodev_data); > + if (ret < 0) > + return ret; > + > cryptodev->attached =3D RTE_CRYPTODEV_DETACHED; > cryptodev_globals.nb_devs--; > return 0; > -- > 2.7.4