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 A869BA00C4; Thu, 29 Sep 2022 10:27:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5089140E5A; Thu, 29 Sep 2022 10:27:53 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 78FCF40694 for ; Thu, 29 Sep 2022 10:27:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664440071; x=1695976071; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ZjChLbazrDbCn8VhGQKlP06YPjPPCFfszxsWq5AbrOQ=; b=lTi049DZ2bexgWr/PztBmDRysLt8yqtV+VeJz6dieBoXHr3lN3yK3NQd v3yKGe0FPoxMGZuxH+94iAZ8jPhhf2No7T+wiNKKv9+zLH+lgMcVC90Vp +C+WO5rmUDj49CHpQ958V9Cn2pn3jGnA0UCoEv/iBCjWpwK+Uq9AcPViL TEolq1b5ia8OiVtiFXxdHhrT0XuQrzbGVNEbbPWKHrP/78KOGMA5F+ZuI Zvd+OsY+pEwQLuvjo/uPidS/O8hAfmBrAaKi1lCwsoVhito2Mf8H/slH9 oXX/E7RYp1+TlZVZDqovkzGIYzTjT9mVVdjNuwnZab7VHSTrunz38sFuj g==; X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="328205273" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208";a="328205273" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 01:27:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="684745682" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208";a="684745682" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 29 Sep 2022 01:27:50 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 01:27:50 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 29 Sep 2022 01:27:50 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) 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; Thu, 29 Sep 2022 01:27:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=alXrBAsqm6YW+bNA7e18zR3TpUy3Ww9T9/C4gbloqMWQv7vIvxmbFRjK9MO089CsD4z5K0L1RQJemZDz/xIZEIUK0QkVVYK4zZ8wXYSJ/ahpaAkyL8sYpA21Ug1ukf7nU23XT9xLjAA7biV0x72e0jTlJuLr6jo7tW8/AeEQEzHH0UMpaeKO/dwblPYVKVYCnVxw8zqW+uza7iXs4fOOK8neVgnJhfuvjvjkabqUH1NYqkhQamPxCykSWNVJl9gKzNO7S9Xsah8glZO65wxF6XPVqIoy1pELxsY7RBjhU3mTbHM0i9IznrkePXJJ1Qbo1IKwB0zYTdb7XHfS/gCuxg== 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=GfgPLsZRi5N14CpK5NAWujN3E3p7/U0mjceSpU3x/fI=; b=H/HHWoG7DAT8wt6IMPMzEgfWBvzsBiwfez+uXITRGuiH7Y5SLM4uLO03igNkaSu1LDaL0WhnXfZ83DEl9Vxjo1/kPBFv6zzmTIIyFggcCMrsFzTYboA/czaKUgjsC1SI+Ei84SnGrzI/aBdD99KeG+Myqm1sdgT9EbwH8gabZSBrZwwBKaFmDgJOJrlg9nYJcetx6OE8DjV/lauuv7e5vTbP6YN1ktCEJdVUHev+8jMxN5KxFb5jr+0NYISkibEOaEt55jhus9PqfYDrYROQgy1kR+La2jbCioFohYBUczqjH9NAHQT4qpSS0vA2avmsaUrT6YBx46gIrWivr0O/dQ== 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 SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by SA2PR11MB4810.namprd11.prod.outlook.com (2603:10b6:806:116::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.20; Thu, 29 Sep 2022 08:27:48 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::39bf:57b1:4824:d40d]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::39bf:57b1:4824:d40d%6]) with mapi id 15.20.5676.017; Thu, 29 Sep 2022 08:27:48 +0000 From: "Xia, Chenbo" 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 Thread-Topic: [PATCH v3 2/2] examples/vhost: unconfigure DMA vchannel Thread-Index: AQHY06N5UncKqAHQ9UKvAsqfYWoyb632CXDw Date: Thu, 29 Sep 2022 08:27:48 +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: <20220929013243.15889-3-xuan.ding@intel.com> Accept-Language: en-US, zh-CN 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: SN6PR11MB3504:EE_|SA2PR11MB4810:EE_ x-ms-office365-filtering-correlation-id: 7fca75c7-fcf7-4618-3cc8-08daa1f47dfe x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: quBK1xLIbIsJZQ0ThfqCHGsRpLPEqfVd/hQ/iVN6GsrQ4ZfpcyjWT1s5+tdXwtXxKeTFrBifgWIKVrixhFXjYUpeUdlKkO7SupkOFjTk4WpD44Hxmi5f2HO4BqbZCmduOJFPmW4lq4hMlZ2cFhqnKlThK1GPwjYshGHIHxCKOtupyJAQ+EfWxJkmSArcYqxBqNi8tE6g0bL6zu3wzF7yHpZFgfFcBcqALkeFBto8b3UoNKjeOV7cvgNqM8oVZXpiBhVhfKTTDhykURZQ3NgUcpYGZjgi+piLrZLqNWSvyA4Cct3jBgoidSzng/RaHuwQ4PHI5hNVTpw4/gQjkwgIuNMFJI67sSCxgU6jOjs57zFiZXuXcQoLnvufQQujzIIjFOArlhP0XDi4OEMe44cC1D+1DDR5HhVsee7FbnE3GLE7EDiLue0zL5wtZiuQc7oalLPv2ETVyYa0g5tUma0lAxyCUZMrzhHowi+ZyT3rsCiK2UHU9A+DUZppCO6Jd4ipPKN91aKb6GyrgpLKHHHJ3oCd5Lv2opKmjevZB2wwMxyy074JaDgqFbObxZAbM/jpruVRje9Xv8uJHPCZmw2sX4mEOZlKemOSJBRFi7/SlYOW9ucyT2V4dX/TUupZDfiajmlk+X0MoKQwlEZp6gMsFO0yjX2ayMXEbKLUc+iyG82CzLwYWuR0ymbGCtoeh0VTyF23K5HtitlBq0SJti/Nyow2vWBMSWg063TUmPKBBplQM5YED7gJlRLUAqtY6wpKHOjQ6v+03kiUd3TiPKQGqw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(376002)(366004)(136003)(346002)(39860400002)(451199015)(83380400001)(186003)(38070700005)(86362001)(122000001)(38100700002)(82960400001)(52536014)(8936002)(5660300002)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(41300700001)(4326008)(2906002)(107886003)(53546011)(478600001)(7696005)(6506007)(26005)(9686003)(316002)(54906003)(110136005)(8676002)(55016003)(71200400001)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?YOnYH1iOn0YOb/y+ug8oMgSkxtgdixPfvwVmEePmmgEV3Jd5bJ+DsZRlFmTl?= =?us-ascii?Q?2iXwvkQxLYRB6QRoSYlhyUgmuGfzNt8yWo7UrSafpz6Rzotw1g8yHdHrH/9h?= =?us-ascii?Q?5/WUejQMWuT2aEIiXOYjvt5GIWvk7/pxSfeKhP0bV2VjP19/2E7A1LpDfT3E?= =?us-ascii?Q?5HHxJj7lcJ0WCJV9k5V+1vM0+Kuobp9lOrbtpRZ2jk8a2ODlM93QjZMXvkcU?= =?us-ascii?Q?tCv6RX8DQaCtR6NFYOq64hPF2DvaYk88dwfKQE/3WVeYyXmeCABaUIWmZ39L?= =?us-ascii?Q?x+KeePmLCMbEhaS9vchOHk4wO0rsse5O4aCOsVVcZYJdp2Zl/idE/OVv9iXn?= =?us-ascii?Q?zTvj5LHMUtWEmblfnz9PaHC9Sw/kP+cQ2IPjxOGsnXIi4ng120QdQKmRtoG3?= =?us-ascii?Q?nhlD52u3kXY0KsJnuvfT1X+WMQ8uLhUWOcrp/O1gB+V9bSQHjkTHGv0NkzGC?= =?us-ascii?Q?xm7YwnDJEVe/xD2hsMFqDOi0V6K3CsBPQF6R8oZCRFhEixye4Oed6Gx9OGzd?= =?us-ascii?Q?YQsCyBRglInC2O+CNqvJyZ2fehAD/y5pJ8odteRNRXd8KZ7b99fRWxbSkYmQ?= =?us-ascii?Q?gt0qyNZRKU+HMivv7hQRvDCRTr30lEUM2V+qEqBUe3jVbXGSIvlecxdqHZXZ?= =?us-ascii?Q?ymH6jZ72NzwfwTmpyH+xKcSKd1L6son7NRIxe7MxkaM8k+F6MnHj4x8Z5fZd?= =?us-ascii?Q?twMoCj9jhdhGNdW4/Ts1c5mh/fqdX+BCocR0M75bor2StDBl/N/n3MIGwSWY?= =?us-ascii?Q?eZfnEpHfym3LBxidQnQO1pi/VWdFhEt3b4028ARCRzYuLoMZZjwfyzPP8Ncn?= =?us-ascii?Q?xtmK85NL706nuonx2gGY6Vxb6v81yBncWYyb+fmHqZT9hk1p1zklCjGLeJCs?= =?us-ascii?Q?AM6xd3aS6LUu2ypBxjJaiipIP7z43uzHLRW699JpB2vD4FTm2wSNoY9fB76g?= =?us-ascii?Q?Jmq5qcdvLn6B11AJeRHjcdAic7NnyF23QMsVvfrxRNKZyGvl78ax+KJEIMwn?= =?us-ascii?Q?LRuLpD1q6VwqTx58USFKlOuOBIv+h8Y7KCr1MOLvsMx1v35yUz8y3MozRA5j?= =?us-ascii?Q?ANlqb3/aRp0BB3oMl+DLQq0WKRsPYdybwxQ8kZO0h0BbU0gHDjC18BvUEICi?= =?us-ascii?Q?TpbRq0K9aPBfBYTb2zSmjiJt5LPW5fFpGaHCEg2EIHx50H7QiBqHqLYLCV7O?= =?us-ascii?Q?ZMOwR5O+q4TIYQGo5RBoODznOyYCskK+GJG9ZlgezP4HTFvksWbIVJeyTOmX?= =?us-ascii?Q?0Xa9V8s1WB+6iImhUEoesOodxrzmlk4szKz8HxEvlkkvO7mMFPPY7pqmN/YI?= =?us-ascii?Q?kYwBdn4JBzh9DqtrCXpEFjyulPRdel4RZezgIh3uDMaYXQcuDfior0tlncsv?= =?us-ascii?Q?vljUYhtZ2odXGQB/GqxWcmTiHAGld69dumm8LymOHM+dvf6aHWMSzTrNVOmY?= =?us-ascii?Q?iFw+HvX9Vmtk8/MsU0jOcClDpeF7sGUXUfjvSGa8m0MLYv/XCdTyPOjfFl61?= =?us-ascii?Q?hrn1FCXFYaROFAmFzpgZmrVgt+ms8aQ0QNcWdGpz8CZEo8kWuiHEaM4urb45?= =?us-ascii?Q?QQijd837t5kyeuNPVLgeZk2rhqBkDT69dQWFJhJm?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fca75c7-fcf7-4618-3cc8-08daa1f47dfe X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2022 08:27:48.3939 (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: 9/z7EQS92UYl87svhB30OX6cM1UXH700wVdebmIMFhNfDJxIivxYBqYu++tCvMTXJKJlj7oDs6IF8GIekuZW2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4810 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 > -----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 >=20 > From: Xuan Ding >=20 > This patch applies rte_vhost_async_dma_unconfigure() API > to manually free DMA vchannels instead of waiting > until the program ends to be released. >=20 > Signed-off-by: Xuan Ding > --- > examples/vhost/main.c | 45 ++++++++++++++++++++++++++++++------------- > examples/vhost/main.h | 1 + > 2 files changed, 33 insertions(+), 13 deletions(-) >=20 > 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) > } > } >=20 > +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; Above two lines could be combined like 'ref_count =3D --XXXX' 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. Thanks, Chenbo > + > + 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 the > * 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); >=20 > - 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); >=20 > rte_free(vdev); > } > @@ -1673,14 +1686,19 @@ vhost_async_channel_register(int vid) >=20 > 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) { >=20 > dma_bind[vid2socketid[vid]].dmas[VIRTIO_RXQ].async_enabled =3D true; > + > dma_bind[vid2socketid[vid]].dmas[VIRTIO_RXQ].dma_ref_count++; > + } > + > } >=20 > 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) { >=20 > dma_bind[vid2socketid[vid]].dmas[VIRTIO_TXQ].async_enabled =3D true; > + > dma_bind[vid2socketid[vid]].dmas[VIRTIO_TXQ].dma_ref_count++; > + } > } >=20 > 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; > } > } >=20 > 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; > }; >=20 > struct dma_for_vhost { > -- > 2.17.1