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 2BA62A0C47; Tue, 12 Oct 2021 08:25:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B421C4067C; Tue, 12 Oct 2021 08:25:16 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 907C840150 for ; Tue, 12 Oct 2021 08:25:15 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10134"; a="313249786" X-IronPort-AV: E=Sophos;i="5.85,366,1624345200"; d="scan'208";a="313249786" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Oct 2021 23:25:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,366,1624345200"; d="scan'208";a="716737470" Received: from irsmsx604.ger.corp.intel.com ([163.33.146.137]) by fmsmga005.fm.intel.com with ESMTP; 11 Oct 2021 23:25:04 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by IRSMSX604.ger.corp.intel.com (163.33.146.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 12 Oct 2021 07:25:02 +0100 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.2242.012; Tue, 12 Oct 2021 14:24:59 +0800 From: "Hu, Jiayu" To: Maxime Coquelin , "dev@dpdk.org" , "Xia, Chenbo" , "Wang, YuanX" , "Ma, WenwuX" , "Richardson, Bruce" , "Mcnamara, John" Thread-Topic: [RFC 00/14] vhost: clean-up and simplify async implementation Thread-Index: AQHXu8iMaVD0R8wFnk6hqBV+33GC3avO6IJQ Date: Tue, 12 Oct 2021 06:24:59 +0000 Message-ID: <0aac1965146d4fcd8829672d07c2f297@intel.com> References: <20211007220013.355530-1-maxime.coquelin@redhat.com> In-Reply-To: <20211007220013.355530-1-maxime.coquelin@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.200.16 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC 00/14] vhost: clean-up and simplify async implementation 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" Hi Maxime, > -----Original Message----- > From: Maxime Coquelin > Sent: Friday, October 8, 2021 6:00 AM > To: dev@dpdk.org; Xia, Chenbo ; Hu, Jiayu > ; Wang, YuanX ; Ma, > WenwuX ; Richardson, Bruce > ; Mcnamara, John > > Cc: Maxime Coquelin > Subject: [RFC 00/14] vhost: clean-up and simplify async implementation >=20 > This series aims at cleaning and simplifying the async enqueue path. I th= ink it > makes the code easier to understand, and is necessary before integrating > new changes. I really appreciate those changes, and the code looks better, especially fo= r improving io vector logic, as the existed implementation has a potential ri= sk of OOB reads/writes. About the fifth patch, removing async batch threshold, this change is OK fo= r me, as current vhost is packet level offloading and buffer level DMA batching c= opy will be done inside the DMA callback, so no need to keep the batching thres= hold. But when integrate DMA logic inside vhost, the async data path still needs = to handle buffer level batching, and some of deleted code may need to be recovered. Thanks, Jiayu >=20 > I may have more reworks to propose in next revisions, but I wanted to sha= re > my current status early so that you have time to review/test it. >=20 > It is only compile-tested, as I don't have HW with IOAT support to test i= t. >=20 > Maxime Coquelin (14): > vhost: move async data in a dedicated structure > vhost: hide inflight async structure > vhost: simplify async IO vectors > vhost: simplify async IO vectors iterators > vhost: remove async batch threshold > vhost: introduce specific iovec structure > vhost: remove useless fields in async iterator struct > vhost: improve IO vector logic > vhost: remove notion of async descriptor > vhost: simplify async enqueue completion > vhost: simplify getting the first in-flight index > vhost: prepare async for mbuf to desc refactoring > vhost: prepare sync for mbuf to desc refactoring > vhost: merge sync and async mbuf to desc filling >=20 > examples/vhost/ioat.c | 30 +- > examples/vhost/ioat.h | 2 +- > lib/vhost/rte_vhost_async.h | 42 +-- > lib/vhost/vhost.c | 129 +++---- > lib/vhost/vhost.h | 67 ++-- > lib/vhost/vhost_user.c | 4 +- > lib/vhost/virtio_net.c | 697 ++++++++++++++---------------------- > 7 files changed, 379 insertions(+), 592 deletions(-) >=20 > -- > 2.31.1