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 A30DCA0543; Sat, 8 Oct 2022 02:38:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 447CA4021E; Sat, 8 Oct 2022 02:38:15 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 9FE9240042 for ; Sat, 8 Oct 2022 02:38:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665189492; x=1696725492; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sar16+y00JbFFieHUc86/eOFqhksNLOWp3C74lCeXAE=; b=VgR1HXx+fpBDMSC0EhCOOqI5PnraqsGv6sLTniwqiduWu+3FLs2DgJgm ypEE2Zgi4xJDTTa90uOPU2uheytFZaoLxh6FS2l9zgUQ0UjPHWiIRO88G E/Xl/ekjqw4Hk+FervbxU/LlDEDCB3ybJ5un5Yhk1JzGMwlEuN5Yarc8X zHosOM+MuiN/gGIBVd2h6zVVKdSak/jGr8rjNUePDnqC6WYeLy83ylFpW KpD8BE6DhOo9doQdvkft8Brqi7lWyRBVDxLlN4YwGElg2nZe8P4UI6Pos 5gojmogas6Rc+yXsWk+WwMPBYg1Da5NtBPXJ0gaLdkeUDjAmNzI8mlH33 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10493"; a="301471912" X-IronPort-AV: E=Sophos;i="5.95,168,1661842800"; d="scan'208";a="301471912" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2022 17:38:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10493"; a="729824148" X-IronPort-AV: E=Sophos;i="5.95,168,1661842800"; d="scan'208";a="729824148" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga002.fm.intel.com with ESMTP; 07 Oct 2022 17:38:11 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 7 Oct 2022 17:38:10 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 7 Oct 2022 17:38:10 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Fri, 7 Oct 2022 17:38:10 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.45) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Fri, 7 Oct 2022 17:38:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=He9OxYdW8zrZVGy6juEz2SN8MQthVUC2TBNF7pypMr5tSVHTsmN9gvWcwiNcJbjd4PNOIZ3YEsoGNRFaOrvSWypFLP/9qn664nqVAOhXbt85N6+NkfhDoREVK1NRke8z61aDW/EAYJDyS1L3iI818Ofj5448dnhsnh0r+wJvXSpO3gqm3kjlwSmmWNsU4yYVsglnN8qfL+8p75nH5Anq7LFfdfUUQ11tEPp8ESwSqYdOyYEMCCfqK6/xNObItTxjorr7DCGxX5Dw3durfEQfhMVlk6k5hsT6Pjmh+vcHnNgaggkFr7jX3UmKxRrDkjt/l9d26tNBbzDkfqu8a1+uUw== 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=T1W4edT5ryyXPmIkD3S0tYXe6qZmNHk3kWU1I7ldWgM=; b=gr3Ppv9oWlhFa/y8Y8ibja9DcyMW5U4Guo/oJL0WD0o+tE6bETN8ZgWmvQsHbMMIJ0IyXvXaXXGeA0ZHOfjkgAMn/c3gp82IMOVm6qXwRXbct/ZR1WMK9FsF5c0Uye6/K105kOLn1+DYVxoeVLCfS4HPvbWVrR4/mMWlu4JJzpZCoKBozPyyVJAbTiyc0gM9V5zIM0l/tO6oaVCo6riQZ8klCnranUNksIEfsdQGBClEC9YefF+kI/lEvjwT6IXgbCHCG3qXaPjTm38UEXoB5mZTp+O0BFv+2OXGuX45TvkqeuqPUxqFj7DWAzyV/i+fvBGSyP+/Y5ERFL92SzepaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by IA0PR11MB7401.namprd11.prod.outlook.com (2603:10b6:208:433::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.25; Sat, 8 Oct 2022 00:38:07 +0000 Received: from BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::817f:155b:4885:ccc3]) by BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::817f:155b:4885:ccc3%4]) with mapi id 15.20.5676.038; Sat, 8 Oct 2022 00:38:07 +0000 From: "Ding, Xuan" To: "Xia, Chenbo" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "He, Xingguang" , "Yang, YvonneX" , "Jiang, Cheng1" , "Wang, YuanX" , "Ma, WenwuX" Subject: RE: [PATCH v3 2/2] examples/vhost: unconfigure DMA vchannel Thread-Topic: [PATCH v3 2/2] examples/vhost: unconfigure DMA vchannel Thread-Index: AQHY06N5tCb40n9/1ku3Klv4x5t21632E28AgA2gPTA= Date: Sat, 8 Oct 2022 00:38:07 +0000 Message-ID: References: <20220814140442.82525-1-xuan.ding@intel.com> <20220929013243.15889-1-xuan.ding@intel.com> <20220929013243.15889-3-xuan.ding@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5513:EE_|IA0PR11MB7401:EE_ x-ms-office365-filtering-correlation-id: 9cdefe6a-6856-4e14-eb1b-08daa8c55e9d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: x8fCQ3Ia9wSx7y48m6hkQYHU7E16j/9uoF+t7j0A51Zs/Rm0aiAGYSxzc/hft1qWPbFVbAYgcRsCg/h62FyHuFEQeJvnPhjpkhjdgE3RxGmibCmsrpA47ls+EaAkvYGpDAyeOHh/kPOLa/me1tAVVtLbd9aqn1Nkz38I+LWibXkQB7QQ5E2y39MPk8DBDv3co/+JrJX4dNT/RxYwbHTvSz8M1673rmti5IR3T805pxZEWSnXdZpqor0GSlOD124FvcD3yDQTl2dKoh55h4oKTtM/9LnP4Hj2XJ7aN16Zd8IwVvxv3ZEp2/4TS3bSjtJfMZ4x1vnYHHLxOO+pHNnKdhI6OdM6EvwHsPxUMe5Hx8Rbsasn03vfPQ096fPstHeV8daNGBtonRfJshveNXWlsyTdL8hxJ+vdUV3AOEx/yJ+jXivK727Upb1aHoKekFLSX8jKQN1rewkV66sgbNfcoFARJcpKDL3Gty2a2XGG7/Fe15UTcJeoEfqccusiioIz3cCFRgGoDrVuwA7uyai5tSq5Ile0ZZJenlnyBaqbk/884Fge8NrQGKZG1woQ+0DpV2SOhNY0nhvUDxAlfIqKxAYTas1GRA96c2+v7/S0Bazz4C6tyVn7ZRiWTFG+3TbOaPQeoqmxCva6MiD4F5M3uG2U+4SHVbG/ZonX1szPaC5IdgMsUQK//zQMrc+Hg2lVFoIMP4OByhwZRt3ARcYNKTzEcqdcf+ovEJeClLyRw8zLzPRVPaW9kNJnUJqH8WY0d5JcY3OogUf4LnIW+v6VOQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5513.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(346002)(366004)(396003)(136003)(376002)(451199015)(86362001)(82960400001)(122000001)(38100700002)(38070700005)(66446008)(76116006)(8676002)(66946007)(4326008)(66476007)(64756008)(66556008)(54906003)(316002)(110136005)(7696005)(8936002)(9686003)(52536014)(26005)(186003)(83380400001)(55016003)(478600001)(71200400001)(2906002)(5660300002)(6506007)(107886003)(41300700001)(53546011)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?YkyVNTkJc1+caKSZXJAXM/RITUqS8RJD4PZKQImgojUD8RKY0tbXgs/wftUT?= =?us-ascii?Q?Spm760Maw5PROz9p9Em/LowOTLrHy4ycVB8r1CzIhislNl0vxFONPrPNcv88?= =?us-ascii?Q?8lvPlaYAWS5A3XfKUF8RQZRTrY0oxRrBzz2KhhNk725O5KjVgchQQ6y6Wzq8?= =?us-ascii?Q?gOBqWGfpCT1wzPjnrOZtQ8aJc1/UlPBECxhO8i8ANMMGgbcQvAOeeI2Q+ate?= =?us-ascii?Q?h9el0u3QgC8Qe9CthyvuXNmapakR5r+k8iSUM6tfm7tnj03CzhuQczZg8D6S?= =?us-ascii?Q?6hvYk4rf1us7/zZbSlL5x8TJOjcsCq4AFGjZlOPRgQeh+5Gp/1PPO0B0TRU1?= =?us-ascii?Q?3y0TWVRrHfoYRqNlxR5tNPkH5q93gNUrKMETiddHNZq7msKQJryL1uCnZr9W?= =?us-ascii?Q?w662qv+27mxwC8qolq2Gn1rIGycjoXSJW6kQN6t1uiVi0HChEhQc9+ugQ9Md?= =?us-ascii?Q?kqV9Wls8HMODVBLfzX4cdDK2simK3O0KmiwyLRszuU4/RlJRcZVD5Zm5/xKd?= =?us-ascii?Q?X8Jpu+2ib9FvoqY6gexIHprgTLmlNwq+KvBF6sIN4XyLgiwuagspWiDTDIa5?= =?us-ascii?Q?OYsFBhfnnJ7aD2dX0EM20nqxtx+dBaF9dUJV1+Hg4dr0nGBblsG8TuDW/OZ+?= =?us-ascii?Q?0oqQEb7LLVUwbmELz9CXfRUDu41kdYVvCOz7JuacDQ++vPOS8bw+yuPioUhU?= =?us-ascii?Q?pnr0tASkg0bCkVulcxpNkyjfOEA7OoaCKiiscHRvLyS7wV8MDsRDa4RwrUlP?= =?us-ascii?Q?c0gGg4NCJiHTS20KF5/BPSmPePjGNYitaZS7ufFptYumQThFpDKpx+ZumWKS?= =?us-ascii?Q?yk57e4y2A/LtA2TLhSYi4+9DI9HQZg4OBjNu4t02d7fwJJdq0FZNiJ3W7G+d?= =?us-ascii?Q?zPmNAib91gRGChdcK/GHlFofuZY21bnohUX1CQju4/eVDbOGpijvIYqf452i?= =?us-ascii?Q?N1eKSuGpygl90d/eVzTkrrfpkiTmPyDgpLTuvR6BTGEixJFE6CdKSOBI/vYV?= =?us-ascii?Q?veVg1KIbcRQLWpLppaFAApiLfe9U6RMloNDSGyToMEukpjGVqDMJN9SAmTMg?= =?us-ascii?Q?jYmB8bYcUCk0KO2d8A9KKmppBGjdncoWzIgZwHemuRJnbdpLNLNYd13uMGBR?= =?us-ascii?Q?8+uzCkzKFKd8w4uFr5Cr9rZEbJuRKp6VHreGy2LV9SfYd3xPKqboJPJTuCBE?= =?us-ascii?Q?9Rf/cHwh/61wRSsUmHajL+2a6gsVwKUf7HvXwmiq5GSQx2S71MrrZzHTsW0F?= =?us-ascii?Q?yJmBH+XWoQsmNAaPibtAR2VNrHeKKhTgpUnn6i7VmOdxgoMcRNgIZ2KC0GKD?= =?us-ascii?Q?lmwsQNItOAYxALr/PeovnmHcG+D6Sb15uJ05XUlgMG2EqSp5colxsxecNcH/?= =?us-ascii?Q?FoXgQCoK2lPzlKNXTWpBS66YHXzQvms4oyVJcAwb8pzmR6yZoPdQThEiHToN?= =?us-ascii?Q?GkRRNBWslWuMWx+ACQCK9FibWXEZykQtUz9sYECCbk0MM1LqpJ8H+3qslRL/?= =?us-ascii?Q?2+WjbyLOoT/ojQ6jnpLoHnn33f3xWMa/zaxudiGuLzL37N/obSyw6e5RdkP2?= =?us-ascii?Q?1K9PYGXX0lTjUQ7/6HCa09RgQnDMmNII6H9VYYaU?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5513.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9cdefe6a-6856-4e14-eb1b-08daa8c55e9d X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2022 00:38:07.5152 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8MzPCTNK7O5HzAwkwXg8n5YqhTmI3VzHq5SH3UIo4AXWOY3JAZUHDtYOL3ERjeK4C22uJhabvDI2gjnw02c8Ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB7401 X-OriginatorOrg: intel.com 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 Hi Chenbo, > -----Original Message----- > From: Xia, Chenbo > Sent: Thursday, September 29, 2022 4:28 PM > To: Ding, Xuan ; maxime.coquelin@redhat.com > Cc: dev@dpdk.org; Hu, Jiayu ; He, Xingguang > ; Yang, YvonneX ; > Jiang, Cheng1 ; Wang, YuanX > ; Ma, WenwuX > Subject: RE: [PATCH v3 2/2] examples/vhost: unconfigure DMA vchannel >=20 > > -----Original Message----- > > From: Ding, Xuan > > Sent: Thursday, September 29, 2022 9:33 AM > > To: maxime.coquelin@redhat.com; Xia, Chenbo > > Cc: dev@dpdk.org; Hu, Jiayu ; He, Xingguang > > ; Yang, YvonneX ; > > Jiang, > > Cheng1 ; Wang, YuanX > ; > > Ma, WenwuX ; Ding, Xuan > > > Subject: [PATCH v3 2/2] examples/vhost: unconfigure DMA vchannel > > > > From: Xuan Ding > > > > This patch applies rte_vhost_async_dma_unconfigure() API to manually > > free DMA vchannels instead of waiting until the program ends to be > > released. > > > > Signed-off-by: Xuan Ding > > --- > > examples/vhost/main.c | 45 > > ++++++++++++++++++++++++++++++------------- > > examples/vhost/main.h | 1 + > > 2 files changed, 33 insertions(+), 13 deletions(-) > > > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index > > 0fa4753e70..32f396d88a 100644 > > --- a/examples/vhost/main.c > > +++ b/examples/vhost/main.c > > @@ -1558,6 +1558,28 @@ vhost_clear_queue(struct vhost_dev *vdev, > > uint16_t > > queue_id) > > } > > } > > > > +static void > > +vhost_clear_async(struct vhost_dev *vdev, int vid, uint16_t queue_id) > > +{ > > + int16_t dma_id; > > + uint16_t ref_count; > > + > > + if (dma_bind[vid].dmas[queue_id].async_enabled) { > > + vhost_clear_queue(vdev, queue_id); > > + rte_vhost_async_channel_unregister(vid, queue_id); > > + dma_bind[vid].dmas[queue_id].async_enabled =3D false; > > + } > > + > > + dma_id =3D dma_bind[vid2socketid[vdev- > >vid]].dmas[queue_id].dev_id; > > + dma_bind[vid2socketid[vdev- > >vid]].dmas[queue_id].dma_ref_count--; > > + ref_count =3D dma_bind[vid2socketid[vdev- > > >vid]].dmas[queue_id].dma_ref_count; >=20 > Above two lines could be combined like 'ref_count =3D --XXXX' >=20 > But I wonder is this dma_ref_count really needed? It's always 0/1 like > Async_enabled, no? If it target at multi-port sharing same one dma case, = it > should not be implemented like this. Yes, the dma_ref_count here is for multi-port sharing same one dma case. Th= e intention was to unconfigure dma device when it is no longer used by any ports. I will check the implementation. Thanks, Xuan >=20 > Thanks, > Chenbo >=20 > > + > > + if (ref_count =3D=3D 0 && dma_id !=3D INVALID_DMA_ID) { > > + if (rte_vhost_async_dma_unconfigure(dma_id, 0) < 0) > > + RTE_LOG(ERR, VHOST_PORT, "Failed to unconfigure > DMA in > > vhost.\n"); > > + } > > +} > > + > > /* > > * Remove a device from the specific data core linked list and from th= e > > * main linked list. Synchronization occurs through the use of the > > @@ -1614,17 +1636,8 @@ destroy_device(int vid) > > "(%d) device has been removed from data core\n", > > vdev->vid); > > > > - if (dma_bind[vid].dmas[VIRTIO_RXQ].async_enabled) { > > - vhost_clear_queue(vdev, VIRTIO_RXQ); > > - rte_vhost_async_channel_unregister(vid, VIRTIO_RXQ); > > - dma_bind[vid].dmas[VIRTIO_RXQ].async_enabled =3D false; > > - } > > - > > - if (dma_bind[vid].dmas[VIRTIO_TXQ].async_enabled) { > > - vhost_clear_queue(vdev, VIRTIO_TXQ); > > - rte_vhost_async_channel_unregister(vid, VIRTIO_TXQ); > > - dma_bind[vid].dmas[VIRTIO_TXQ].async_enabled =3D false; > > - } > > + vhost_clear_async(vdev, vid, VIRTIO_RXQ); > > + vhost_clear_async(vdev, vid, VIRTIO_TXQ); > > > > rte_free(vdev); > > } > > @@ -1673,14 +1686,19 @@ vhost_async_channel_register(int vid) > > > > if (dma_bind[vid2socketid[vid]].dmas[VIRTIO_RXQ].dev_id !=3D > > INVALID_DMA_ID) { > > rx_ret =3D rte_vhost_async_channel_register(vid, > VIRTIO_RXQ); > > - if (rx_ret =3D=3D 0) > > + if (rx_ret =3D=3D 0) { > > > > dma_bind[vid2socketid[vid]].dmas[VIRTIO_RXQ].async_enabled =3D > true; > > + > > dma_bind[vid2socketid[vid]].dmas[VIRTIO_RXQ].dma_ref_count++; > > + } > > + > > } > > > > if (dma_bind[vid2socketid[vid]].dmas[VIRTIO_TXQ].dev_id !=3D > > INVALID_DMA_ID) { > > tx_ret =3D rte_vhost_async_channel_register(vid, > VIRTIO_TXQ); > > - if (tx_ret =3D=3D 0) > > + if (tx_ret =3D=3D 0) { > > > > dma_bind[vid2socketid[vid]].dmas[VIRTIO_TXQ].async_enabled =3D > true; > > + > > dma_bind[vid2socketid[vid]].dmas[VIRTIO_TXQ].dma_ref_count++; > > + } > > } > > > > return rx_ret | tx_ret; > > @@ -1886,6 +1904,7 @@ reset_dma(void) > > for (j =3D 0; j < RTE_MAX_QUEUES_PER_PORT * 2; j++) { > > dma_bind[i].dmas[j].dev_id =3D INVALID_DMA_ID; > > dma_bind[i].dmas[j].async_enabled =3D false; > > + dma_bind[i].dmas[j].dma_ref_count =3D 0; > > } > > } > > > > diff --git a/examples/vhost/main.h b/examples/vhost/main.h index > > 2fcb8376c5..2b2cf828d3 100644 > > --- a/examples/vhost/main.h > > +++ b/examples/vhost/main.h > > @@ -96,6 +96,7 @@ struct dma_info { > > struct rte_pci_addr addr; > > int16_t dev_id; > > bool async_enabled; > > + uint16_t dma_ref_count; > > }; > > > > struct dma_for_vhost { > > -- > > 2.17.1