List patch comments

GET /api/patches/74616/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<https://patches.dpdk.org/api/patches/74616/comments/?format=api&page=1>; rel="first",
<https://patches.dpdk.org/api/patches/74616/comments/?format=api&page=1>; rel="last"
Vary: Accept
[ { "id": 116496, "web_url": "https://patches.dpdk.org/comment/116496/", "msgid": "<MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com", "date": "2020-07-22T11:21:27", "subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs", "submitter": { "id": 1276, "url": "https://patches.dpdk.org/api/people/1276/?format=api", "name": "Chenbo Xia", "email": "chenbo.xia@intel.com" }, "content": "Hi Patrick,\n\n> -----Original Message-----\n> From: Fu, Patrick <patrick.fu@intel.com>\n> Sent: Wednesday, July 22, 2020 6:58 PM\n> To: dev@dpdk.org; maxime.coquelin@redhat.com; Xia, Chenbo\n> <chenbo.xia@intel.com>\n> Cc: Fu, Patrick <patrick.fu@intel.com>\n> Subject: [PATCH v1 1/2] doc: update guides for vhost async APIs\n> \n> From: Patrick Fu <patrick.fu@intel.com>\n> \n> Update vhost guides to document vhost async APIs\n> \n> Signed-off-by: Patrick Fu <patrick.fu@intel.com>\n> ---\n> doc/guides/prog_guide/vhost_lib.rst | 86 ++++++++++++++++++++++++++---\n> 1 file changed, 77 insertions(+), 9 deletions(-)\n> \n> diff --git a/doc/guides/prog_guide/vhost_lib.rst\n> b/doc/guides/prog_guide/vhost_lib.rst\n> index db921f922..cce8b6ae7 100644\n> --- a/doc/guides/prog_guide/vhost_lib.rst\n> +++ b/doc/guides/prog_guide/vhost_lib.rst\n> @@ -147,6 +147,21 @@ The following is an overview of some key Vhost API\n> functions:\n> \n> It is disabled by default.\n> \n> + - ``RTE_VHOST_USER_ASYNC_COPY``\n> +\n> + Asynchronous data path will be enabled when this flag is set. Async data\n> + path allows applications to register async copy devices (typically\n> + hardware DMA channels) to the vhost queues. Vhost leverages the copy\n> + device registered to offload CPU from memory copy operations. A set of\n\nYou mean 'free' CPU from memory copy?\n\n> + async data path APIs are defined for DPDK applications to make use of\n> + the async capability. Only packets enqueued/dequeued by async APIs are\n> + processed through the async data path.\n> +\n> + Currently this feature is only implemented on split ring enqueue data\n> + path.\n> +\n> + It is disabled by default.\n> +\n> * ``rte_vhost_driver_set_features(path, features)``\n> \n> This function sets the feature bits the vhost-user driver supports. The @@ -\n> 235,6 +250,59 @@ The following is an overview of some key Vhost API\n> functions:\n> \n> Enable or disable zero copy feature of the vhost crypto backend.\n> \n> +* ``rte_vhost_async_channel_register(vid, queue_id, features, ops)``\n> +\n> + Register a vhost queue with async copy device channel.\n> + Following device ``features`` must be specified together with the\n> + registration:\n> +\n> + * ``async_inorder``\n> +\n> + Async copy device can guarantee the ordering of copy completion\n> + sequence. Copies are completed in the same order with that at\n> + the submission time.\n> +\n> + Currently, only ``async_inorder`` capable device is supported by vhost.\n> +\n> + * ``async_threshold``\n> +\n> + The copy length (in bytes) below which CPU copy will be used even if\n> + applications call async vhost APIs to enqueue/dequeue data.\n> +\n> + Typical value is 512~1024 depending on the async device capability.\n> +\n> + Applications must provide following ``ops`` callbacks for vhost lib\n> + to work with the async copye devices:\n\ns/copye/copy\n\n> +\n> + * ``transfer_data(vid, queue_id, descs, opaque_data, count)``\n> +\n> + vhost invokes this function to submit copy data to the async devices.\n> + For non-async_inorder capable devices, ``opaque_data`` could be used\n> + for identifying the completed packets.\n> +\n> + * ``check_completed_copies(vid, queue_id, opaque_data, max_packets)``\n> +\n> + vhost invokes this function to get the copy data completed by async\n> + devices.\n> +\n> +* ``rte_vhost_async_channel_unregister(vid, queue_id)``\n> +\n> + Unregister the async copy device from a vhost queue.\n\n'Copy device channel' may be more accurate? \n\n> +\n> +* ``rte_vhost_submit_enqueue_burst(vid, queue_id, pkts, count)``\n> +\n> + Submit an enqueue request to transmit ``count`` packets from host to\n> + guest by async data path. Enqueue is not guaranteed to finish upon\n> + the return of this API call.\n> +\n> + Applications must not free the packets submitted for enqueue until\n> + the packets are completed.\n> +\n> +* ``rte_vhost_poll_enqueue_completed(vid, queue_id, pkts, count)``\n> +\n> + Poll enqueue completion status from async data path. Completed\n> + packets are returned to applications through ``pkts``.\n> +\n> Vhost-user Implementations\n> --------------------------\n> \n> @@ -294,16 +362,16 @@ Guest memory requirement\n> \n> * Memory pre-allocation\n> \n> - For non-zerocopy, guest memory pre-allocation is not a must. This can help\n> - save of memory. If users really want the guest memory to be pre-allocated\n> - (e.g., for performance reason), we can add option ``-mem-prealloc`` when\n> - starting QEMU. Or, we can lock all memory at vhost side which will force\n> - memory to be allocated when mmap at vhost side; option --mlockall in\n> - ovs-dpdk is an example in hand.\n> + For non-zerocopy non-async data path, guest memory pre-allocation is\n> + not a must. This can help save of memory. If users really want the\n> + guest memory to be pre-allocated (e.g., for performance reason), we\n> + can add option ``-mem-prealloc`` when starting QEMU. Or, we can lock\n> + all memory at vhost side which will force memory to be allocated when\n> + mmap at vhost side; option --mlockall in ovs-dpdk is an example in hand.\n> \n> - For zerocopy, we force the VM memory to be pre-allocated at vhost lib when\n> - mapping the guest memory; and also we need to lock the memory to prevent\n> - pages being swapped out to disk.\n> + For async data path or zerocopy, we force the VM memory to be\n\n'For async or zerocopy data path' may be better?\n\nThanks!\nChenbo\n\n> + pre-allocated at vhost lib when mapping the guest memory; and also we\n> + need to lock the memory to prevent pages being swapped out to disk.\n> \n> * Memory sharing\n> \n> --\n> 2.18.4", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 60A86A0526;\n\tWed, 22 Jul 2020 13:21:40 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 9DAFB1C012;\n\tWed, 22 Jul 2020 13:21:38 +0200 (CEST)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n by dpdk.org (Postfix) with ESMTP id E4D1F1BFFF\n for <dev@dpdk.org>; Wed, 22 Jul 2020 13:21:36 +0200 (CEST)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Jul 2020 04:21:34 -0700", "from orsmsx106.amr.corp.intel.com ([10.22.225.133])\n by orsmga008.jf.intel.com with ESMTP; 22 Jul 2020 04:21:34 -0700", "from orsmsx122.amr.corp.intel.com (10.22.225.227) by\n ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 04:21:34 -0700", "from ORSEDG001.ED.cps.intel.com (10.7.248.4) by\n ORSMSX122.amr.corp.intel.com (10.22.225.227) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 04:21:34 -0700", "from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108)\n by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 04:21:29 -0700", "from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22)\n by MN2PR11MB3600.namprd11.prod.outlook.com (2603:10b6:208:fa::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Wed, 22 Jul\n 2020 11:21:27 +0000", "from MN2PR11MB4063.namprd11.prod.outlook.com\n ([fe80::7cde:8326:5010:c47e]) by MN2PR11MB4063.namprd11.prod.outlook.com\n ([fe80::7cde:8326:5010:c47e%7]) with mapi id 15.20.3195.024; Wed, 22 Jul 2020\n 11:21:27 +0000" ], "IronPort-SDR": [ "\n b6DiYD6nHMAqVXQAmS5t9QPWTIjZxloa5XhJuUX5wsl0k7mIK6FiZxoxnTOiMe6+yhViuvtAvb\n a0yIytppLNNg==", "\n sL9OZvUVlENm3Xf0dGI1IOcWnZA/WKAUOL6z482D6zSIjrwcZIRqs3Tpqn2lLSetjh+4bXlG5Q\n tZWsWPVyMp0A==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9689\"; a=\"151634973\"", "E=Sophos;i=\"5.75,381,1589266800\"; d=\"scan'208\";a=\"151634973\"", "E=Sophos;i=\"5.75,381,1589266800\"; d=\"scan'208\";a=\"318637305\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=MfoYW2zJiNDmbzD0s18po4MhXvnjnYcH/7xvoL7SgC5FNYc74kmEyMmQu673NzDRXopZ1LU9x6ScReBcRu8yfK19OR5wBuWtrtSIv2xQtjJxfFnp7QuQjitbRIJqqrA6rgKzMIExgr7xa5cSe7nD4KkndUhHLEdhYIXUBx/yfUXrKBhK81ogD2dkLsvwr6g7Xbyzj8P1FPAeKqm3HDtqely114uGSThjvHRmPm1PA9mSpV4gJLB91Xm6Kv80EkZNE0npHybcLeA2skCybWdtvnEmKbHH5sNy6OIMCzzcXRB/sdQTa8KSEIDZzZ/O+51HWKp2593loOBk3IVa9m9Dsw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=JOq0ftvLzUxEv+k6xAQB+LP4RxMUJcxCNDCab6N2Agw=;\n b=mB/andX0IHGWwoP9PqxJ28H/tzfPyQAl/zK8sRiPRyExC3Cn6TdIjl2L4YcDFLW+UKGlLZdxffOcKMCl4lMlKm/Ss4bFWJZpdQqnFXedWwMMRSaPtbnvPV4GCugsCEbjQO6ysj7wEctFBd6WKL/hqBy1yR2IoxaZRD18HqOoAWkxBqvUYsmq4cTfIsvyGNUheFTGPeg+fSPUFeWCV9MdzqTaa6snCZhgehYqI505AvLPOgboyi3FyF3URXkadNcFgiiyLaCNYFYWb4nhfxHX62WjAnBvSljOOjS3mNoJ+U7sVoBIB+q+53phYqo/RZCk7R7ZREA2+UmVi7JCOwoWEg==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;\n s=selector2-intel-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=JOq0ftvLzUxEv+k6xAQB+LP4RxMUJcxCNDCab6N2Agw=;\n b=cLUsU8mEs2F12D3+3kSYR5447q8v0T1rqu8CRV32Twvqvei2nXFp1sWr7UaFlU0NaitnwPDYA9LuWFoaH0CG/jJA4Yl0LdArVr+mSsR7ijY9LpLTAx3QulRKzKSlZCUL3ARQihazBf93IS6Dmg+VQRK4HpW0wGboPTILoe0uBLU=", "From": "\"Xia, Chenbo\" <chenbo.xia@intel.com>", "To": "\"Fu, Patrick\" <patrick.fu@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"maxime.coquelin@redhat.com\" <maxime.coquelin@redhat.com>", "Thread-Topic": "[PATCH v1 1/2] doc: update guides for vhost async APIs", "Thread-Index": "AQHWYBdT226mcYFOV0WzNGnqdhGyRqkTchGQ", "Date": "Wed, 22 Jul 2020 11:21:27 +0000", "Message-ID": "\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>", "References": "<20200722105741.3421255-1-patrick.fu@intel.com>\n <20200722105741.3421255-2-patrick.fu@intel.com>", "In-Reply-To": "<20200722105741.3421255-2-patrick.fu@intel.com>", "Accept-Language": "en-US, zh-CN", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=intel.com;", "x-originating-ip": "[192.102.204.36]", "x-ms-publictraffictype": "Email", "x-ms-office365-filtering-correlation-id": "66f3bd11-b590-480e-beed-08d82e31601b", "x-ms-traffictypediagnostic": "MN2PR11MB3600:", "x-ms-exchange-transport-forked": "True", "x-microsoft-antispam-prvs": "\n <MN2PR11MB360091E1CED43B5AB15E09699C790@MN2PR11MB3600.namprd11.prod.outlook.com>", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;", "x-ms-exchange-senderadcheck": "1", "x-microsoft-antispam": "BCL:0;", "x-microsoft-antispam-message-info": "\n ZM90CoqMdEp2pobeXwiKtvA1W3RiPBaMPTNPBjFthti5aufgrIQF27O67d45Rg5dKHAnNuodrBT9iBU9TAuP31821w7hR+OBEptIeuHvTAw3ARiKkElnmENjqZ0BUcMJ/0AOkq1CWyHFQ+ziscLqmcTcJy88CfNDntKqCPPz1SmUQcUXnSFECD/Df5YziFICvaKIO6craqcEcEYHwprHzeVlcVshn8RRjvrQKp52PnklxzYgA500yMshklN9B0zpu8GEHg+J3wj0Q7YssuGIQs2yco/DaYl39jSqqNTloPML/z5jTQW8HKvrpNNFz/5Gv0hyC51TsevTtEKQme+cEA==", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFTY:;\n SFS:(4636009)(396003)(39860400002)(136003)(366004)(346002)(376002)(66476007)(64756008)(66556008)(76116006)(66446008)(66946007)(26005)(186003)(316002)(5660300002)(9686003)(52536014)(110136005)(55016002)(8676002)(86362001)(8936002)(478600001)(2906002)(15650500001)(53546011)(7696005)(71200400001)(6506007)(33656002)(83380400001);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata": "\n UhjmmRgA7JTovu3v7vd0ZkUvo/y76q/jZby8+NmF5C+yjt7eMCoImpiZoa5hRYu9ChzhRbef7zAQmctM7+CY6SFNom/t52YwE8yk96uAbufA9D1Wxi8mMnPXiirRLEcKZaGWCpsjer/i2vxBkb98nk0xsGp9ZRk1HbGqanZVxwT8g18HZO/qpklXwSVRSwuo4bC6X+tVxIU9P0ZD85336woWlOCiokJxfUaY93QK0N2qSfdWpxZzEawkijfJu7YU9xNALvqDqg/WYmrvwGwFOJLNH3BdYv01R4PJPGaOylRVEbR+3J6HDGhu7NqhWmF/EIStXx0p8tRMyeioPRC6T/CD8scyqiWRIsO4cTNruKQ+3oN6ozbm4irRd0mV/EIYe0GCeRb2GXbYCBZ3xfHTGLZqZL6Cc8sANzh3g+CqpZK0VrOZCeHOoShlYsK7l4niiUDni50kh1MuqKFT7/CR9Jx2ZbrMRiKRACX9NtMUHNa3+vlXH81ffpjYHanAf6wU", "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": "MN2PR11MB4063.namprd11.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 66f3bd11-b590-480e-beed-08d82e31601b", "X-MS-Exchange-CrossTenant-originalarrivaltime": "22 Jul 2020 11:21:27.2811 (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": "\n glAldbEa0bhxbnNOa42YjoWiI+JcUcFNXXyFFzz0NPwFlKzPWsTwADhrQeZ1qCZKYhDm0fxxNWMTueDfxjNgPA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR11MB3600", "X-OriginatorOrg": "intel.com", "Subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116510, "web_url": "https://patches.dpdk.org/comment/116510/", "msgid": "<BYAPR11MB37357C2A1B323B4F2041017A84790@BYAPR11MB3735.namprd11.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/BYAPR11MB37357C2A1B323B4F2041017A84790@BYAPR11MB3735.namprd11.prod.outlook.com", "date": "2020-07-22T15:06:19", "subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs", "submitter": { "id": 1781, "url": "https://patches.dpdk.org/api/people/1781/?format=api", "name": "Patrick Fu", "email": "patrick.fu@intel.com" }, "content": "Thanks for comments. v2 patch sent with all the changes suggested.\n\nThanks,\n\nPatrick\n\n\n> -----Original Message-----\n> From: Xia, Chenbo <chenbo.xia@intel.com>\n> Sent: Wednesday, July 22, 2020 7:21 PM\n> To: Fu, Patrick <patrick.fu@intel.com>; dev@dpdk.org;\n> maxime.coquelin@redhat.com\n> Subject: RE: [PATCH v1 1/2] doc: update guides for vhost async APIs\n> \n> Hi Patrick,\n> \n> > -----Original Message-----\n> > From: Fu, Patrick <patrick.fu@intel.com>\n> > Sent: Wednesday, July 22, 2020 6:58 PM\n> > To: dev@dpdk.org; maxime.coquelin@redhat.com; Xia, Chenbo\n> > <chenbo.xia@intel.com>\n> > Cc: Fu, Patrick <patrick.fu@intel.com>\n> > Subject: [PATCH v1 1/2] doc: update guides for vhost async APIs\n> >\n> > From: Patrick Fu <patrick.fu@intel.com>\n> >\n> > Update vhost guides to document vhost async APIs\n> >\n> > Signed-off-by: Patrick Fu <patrick.fu@intel.com>\n> > ---\n> > doc/guides/prog_guide/vhost_lib.rst | 86\n> > ++++++++++++++++++++++++++---\n> > 1 file changed, 77 insertions(+), 9 deletions(-)\n> >\n> > diff --git a/doc/guides/prog_guide/vhost_lib.rst\n> > b/doc/guides/prog_guide/vhost_lib.rst\n> > index db921f922..cce8b6ae7 100644\n> > --- a/doc/guides/prog_guide/vhost_lib.rst\n> > +++ b/doc/guides/prog_guide/vhost_lib.rst\n> > @@ -147,6 +147,21 @@ The following is an overview of some key Vhost\n> > API\n> > functions:\n> >\n> > It is disabled by default.\n> >\n> > + - ``RTE_VHOST_USER_ASYNC_COPY``\n> > +\n> > + Asynchronous data path will be enabled when this flag is set. Async\n> data\n> > + path allows applications to register async copy devices (typically\n> > + hardware DMA channels) to the vhost queues. Vhost leverages the copy\n> > + device registered to offload CPU from memory copy operations. A\n> > + set of\n> \n> You mean 'free' CPU from memory copy?\n> \n> > + async data path APIs are defined for DPDK applications to make use of\n> > + the async capability. Only packets enqueued/dequeued by async APIs\n> are\n> > + processed through the async data path.\n> > +\n> > + Currently this feature is only implemented on split ring enqueue data\n> > + path.\n> > +\n> > + It is disabled by default.\n> > +\n> > * ``rte_vhost_driver_set_features(path, features)``\n> >\n> > This function sets the feature bits the vhost-user driver supports.\n> > The @@ -\n> > 235,6 +250,59 @@ The following is an overview of some key Vhost API\n> > functions:\n> >\n> > Enable or disable zero copy feature of the vhost crypto backend.\n> >\n> > +* ``rte_vhost_async_channel_register(vid, queue_id, features, ops)``\n> > +\n> > + Register a vhost queue with async copy device channel.\n> > + Following device ``features`` must be specified together with the\n> > + registration:\n> > +\n> > + * ``async_inorder``\n> > +\n> > + Async copy device can guarantee the ordering of copy completion\n> > + sequence. Copies are completed in the same order with that at\n> > + the submission time.\n> > +\n> > + Currently, only ``async_inorder`` capable device is supported by vhost.\n> > +\n> > + * ``async_threshold``\n> > +\n> > + The copy length (in bytes) below which CPU copy will be used even if\n> > + applications call async vhost APIs to enqueue/dequeue data.\n> > +\n> > + Typical value is 512~1024 depending on the async device capability.\n> > +\n> > + Applications must provide following ``ops`` callbacks for vhost lib\n> > + to work with the async copye devices:\n> \n> s/copye/copy\n> \n> > +\n> > + * ``transfer_data(vid, queue_id, descs, opaque_data, count)``\n> > +\n> > + vhost invokes this function to submit copy data to the async devices.\n> > + For non-async_inorder capable devices, ``opaque_data`` could be used\n> > + for identifying the completed packets.\n> > +\n> > + * ``check_completed_copies(vid, queue_id, opaque_data,\n> > + max_packets)``\n> > +\n> > + vhost invokes this function to get the copy data completed by async\n> > + devices.\n> > +\n> > +* ``rte_vhost_async_channel_unregister(vid, queue_id)``\n> > +\n> > + Unregister the async copy device from a vhost queue.\n> \n> 'Copy device channel' may be more accurate?\n> \n> > +\n> > +* ``rte_vhost_submit_enqueue_burst(vid, queue_id, pkts, count)``\n> > +\n> > + Submit an enqueue request to transmit ``count`` packets from host\n> > + to guest by async data path. Enqueue is not guaranteed to finish\n> > + upon the return of this API call.\n> > +\n> > + Applications must not free the packets submitted for enqueue until\n> > + the packets are completed.\n> > +\n> > +* ``rte_vhost_poll_enqueue_completed(vid, queue_id, pkts, count)``\n> > +\n> > + Poll enqueue completion status from async data path. Completed\n> > + packets are returned to applications through ``pkts``.\n> > +\n> > Vhost-user Implementations\n> > --------------------------\n> >\n> > @@ -294,16 +362,16 @@ Guest memory requirement\n> >\n> > * Memory pre-allocation\n> >\n> > - For non-zerocopy, guest memory pre-allocation is not a must. This\n> > can help\n> > - save of memory. If users really want the guest memory to be\n> > pre-allocated\n> > - (e.g., for performance reason), we can add option ``-mem-prealloc``\n> > when\n> > - starting QEMU. Or, we can lock all memory at vhost side which will\n> > force\n> > - memory to be allocated when mmap at vhost side; option --mlockall\n> > in\n> > - ovs-dpdk is an example in hand.\n> > + For non-zerocopy non-async data path, guest memory pre-allocation\n> > + is not a must. This can help save of memory. If users really want\n> > + the guest memory to be pre-allocated (e.g., for performance\n> > + reason), we can add option ``-mem-prealloc`` when starting QEMU.\n> > + Or, we can lock all memory at vhost side which will force memory to\n> > + be allocated when mmap at vhost side; option --mlockall in ovs-dpdk is\n> an example in hand.\n> >\n> > - For zerocopy, we force the VM memory to be pre-allocated at vhost\n> > lib when\n> > - mapping the guest memory; and also we need to lock the memory to\n> > prevent\n> > - pages being swapped out to disk.\n> > + For async data path or zerocopy, we force the VM memory to be\n> \n> 'For async or zerocopy data path' may be better?\n> \n> Thanks!\n> Chenbo\n> \n> > + pre-allocated at vhost lib when mapping the guest memory; and also\n> > + we need to lock the memory to prevent pages being swapped out to disk.\n> >\n> > * Memory sharing\n> >\n> > --\n> > 2.18.4", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 0C3C6A0526;\n\tWed, 22 Jul 2020 17:06:31 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id ED9161BFBB;\n\tWed, 22 Jul 2020 17:06:30 +0200 (CEST)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by dpdk.org (Postfix) with ESMTP id 0F2E82B86\n for <dev@dpdk.org>; Wed, 22 Jul 2020 17:06:29 +0200 (CEST)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Jul 2020 08:06:23 -0700", "from orsmsx102.amr.corp.intel.com ([10.22.225.129])\n by FMSMGA003.fm.intel.com with ESMTP; 22 Jul 2020 08:06:23 -0700", "from orsmsx114.amr.corp.intel.com (10.22.240.10) by\n ORSMSX102.amr.corp.intel.com (10.22.225.129) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 08:06:22 -0700", "from ORSEDG002.ED.cps.intel.com (10.7.248.5) by\n ORSMSX114.amr.corp.intel.com (10.22.240.10) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 08:06:22 -0700", "from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170)\n by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Wed, 22 Jul 2020 08:06:22 -0700", "from BYAPR11MB3735.namprd11.prod.outlook.com (2603:10b6:a03:b4::31)\n by BYAPR11MB3526.namprd11.prod.outlook.com (2603:10b6:a03:88::13)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.25; Wed, 22 Jul\n 2020 15:06:19 +0000", "from BYAPR11MB3735.namprd11.prod.outlook.com\n ([fe80::2571:24e3:140b:d78c]) by BYAPR11MB3735.namprd11.prod.outlook.com\n ([fe80::2571:24e3:140b:d78c%7]) with mapi id 15.20.3216.020; Wed, 22 Jul 2020\n 15:06:19 +0000" ], "IronPort-SDR": [ "\n n4gXOhUDQEZpkjVNw441IhbP5RYddwht4dqS22gA7ZF+nTXt+UXRw4IqBgO66woz3/1aCyYlos\n xccIvYJ6NVYg==", "\n kTZGeRva7GO7j5rd9y1l0T5MCYCUDa3GY+bFKGb370ZyAMeQbNwW+ioTJmOpYxwkXQxz3Cmz4n\n ayTET030vCMw==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9689\"; a=\"214978932\"", "E=Sophos;i=\"5.75,383,1589266800\"; d=\"scan'208\";a=\"214978932\"", "E=Sophos;i=\"5.75,383,1589266800\"; d=\"scan'208\";a=\"326713549\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=kHcB0Dx2R0Vdm7QK3S6fY3JTakWfLhhQ60gXfroRqXyDOF5/+Zn3UPSphE8h/XxMtHzb42RuvwtDqMJHQ7qvYJWOZ23CMzP/pxNIp+iBCoYygcV8hjsC7VmYiBSjzTxBNHrF4zlSCfUEvGlBpac+UqWIcfiHhXsDDdEC9n1VxZQ4yzx8LdrTbrpuA3SFVa0upGsGGgCHMTNZBr50bjW4EuvOHZlgsPGZ7laeMqP/NoOyM5aah9fAHlbOFEQJiOn6b4nW8h0ML2ZlrqlWLkloBuEZDw8MAR0uP/NIHySc2gMTSh88qaxcsoj3lQk1wUG7UIcAEnPTUJIb9q6DeIbB/w==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=zEHMaZ0aPgbnhzBBmq7VAWfxI7miOayW7lTSzJcYaM4=;\n b=IgTsIJubnVeM7bWYKBJ1qKhb5NQo7iF8V+e5mpPKdE/U+eyUBH/XSxeF59EKt+9RtGCBKSUu6Ze3vZAwYxiYZEiw9gxPvRev6i+IpvXvDI5C+bnNL56dkJyX4XwUG7n+fmkRtJrHiqNbXC4Qe5/T5Jk3STOPJPtgUBiNeLvs5rHcajTZz3wlT7+hrqSXXpval2CLn+vQ6dhxrIbMhrTeTgnaq69yT1cFdi1KrmgK8PBzgfH4xiXx/i0j9WbYwcfZw+bNDoAGwrSSjy+RjtAYYJeGWUnk88EpD9G+ZZopH0GFtG1lMj2BszRJ56OcWSKpekjfiqSnG00Twv2VyuJLBA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;\n s=selector2-intel-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=zEHMaZ0aPgbnhzBBmq7VAWfxI7miOayW7lTSzJcYaM4=;\n b=ds09IH/LxuFDplt1RX9IU2dnF7Htm7tTtftG20gkn1mOlJrDPK9+Ou3uj6jwLSUXWpo5bdylFqJms4dDx6ugNNUCT0PbsoHi8mzLcLU3TqwEVZ5xtl5L6s6FglHL4WP7aV6BnrI8Pw18OBE/t+16hkJqBxXo9D/Cf6deQetWsVM=", "From": "\"Fu, Patrick\" <patrick.fu@intel.com>", "To": "\"Xia, Chenbo\" <chenbo.xia@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"maxime.coquelin@redhat.com\" <maxime.coquelin@redhat.com>", "Thread-Topic": "[PATCH v1 1/2] doc: update guides for vhost async APIs", "Thread-Index": "AQHWYBdTwCMx+EEls0Wesfm3jrqaPakTdEyAgAA+OzA=", "Date": "Wed, 22 Jul 2020 15:06:19 +0000", "Message-ID": "\n <BYAPR11MB37357C2A1B323B4F2041017A84790@BYAPR11MB3735.namprd11.prod.outlook.com>", "References": "<20200722105741.3421255-1-patrick.fu@intel.com>\n <20200722105741.3421255-2-patrick.fu@intel.com>\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>", "In-Reply-To": "\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "dlp-version": "11.2.0.6", "dlp-product": "dlpe-windows", "dlp-reaction": "no-action", "authentication-results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=intel.com;", "x-originating-ip": "[192.198.147.200]", "x-ms-publictraffictype": "Email", "x-ms-office365-filtering-correlation-id": "2382c6ad-7109-4367-e2e6-08d82e50ca4c", "x-ms-traffictypediagnostic": "BYAPR11MB3526:", "x-ms-exchange-transport-forked": "True", "x-microsoft-antispam-prvs": "\n <BYAPR11MB3526BB1EC850D6AB6737C9C884790@BYAPR11MB3526.namprd11.prod.outlook.com>", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;", "x-ms-exchange-senderadcheck": "1", "x-microsoft-antispam": "BCL:0;", "x-microsoft-antispam-message-info": "\n lm25eh3FOrZnQE0QEH0x5uRDJtZlWodGBeIJMR+s6KVPGavWnUXoEpKXpqvVUktyuq8yOzJIeJdmH5Kw5z6ZnTKMk+yTTK8O4v0y2fKDiEWKFetppzXB6WWVXaLNOl6o88GyEpdIvFvbHbp+Y0cO8ZaN1MLFwao6z4uuVjI9hoEbieRNOc/vmOR3KUjJ+F3Vy1tKqhRCWAkBxkkAVCmPEAd8vDB0bvLyHygdZmM4Cpkx2WEJ7xRthdJRRVHuw6WeWBX4ZMrKqPjcMsv709/siOkpzshwtDXK0v+yTlk3BrWNKylBa08TFfsQCVyzW58bxOCQ9fl0NVpKuU2Ht6Rleg==", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:BYAPR11MB3735.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFTY:;\n SFS:(4636009)(366004)(376002)(346002)(396003)(39860400002)(136003)(53546011)(6506007)(26005)(478600001)(76116006)(186003)(7696005)(5660300002)(66476007)(66446008)(64756008)(316002)(66556008)(66946007)(52536014)(86362001)(8936002)(33656002)(110136005)(15650500001)(83380400001)(71200400001)(8676002)(2906002)(55016002)(9686003);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata": "\n m+4M6gLrcxmaY0S4b3+FkrknvSSE9eN1cdJgWRxxWPn1f/lGRbSd0atJL+OSDQZWzipNXWQairYM5P3MC4+7JkuAVFSv3e03UW/wycIeUAckeyrlB6CMg317LYZXEtGFYj3R7A7fr/7764VKppp6u4RfFJuohIOTV1FNZotOSDZ2hPFUh9BaTC5FymJpzby77iz3Z0GpKtRiHyij6uIA5kzTsHj5RCpN0eAjRRqy5S80jZRZhnXNdUZgOrAZdRUkcxYKtzq8UQdB9LL94Yv/1urxaSdf36d+H6HWc75FhrHaQgX3zmMcYiaGKURtYY4Yi6o2Ogzuj+BmxbL+nYSaKHdGietKgtK4BNRElVKiHERQW0aZquX2mNky3P8VfbJMcEMGD5YvLQ4L3ckS2IjTurEmmD6KlHDCCGX7jcDOTrRjaJUgmqP8lY8JWkBwTTeAWuOJgZSDTFhKbpIZ4WzoXjWlX3lse3msinmr1uVCR+ylOQxttGX6gfNm2kqsncdz", "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": "BYAPR11MB3735.namprd11.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 2382c6ad-7109-4367-e2e6-08d82e50ca4c", "X-MS-Exchange-CrossTenant-originalarrivaltime": "22 Jul 2020 15:06:19.7294 (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": "\n jdFvg1+AiiIyYcADXYdYNFiq8vnsXRxQM/Ohy4qqNig0mMr7+OW1078oUdkt6I+5BvYZJixMVE1m1GjBVDq5nA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR11MB3526", "X-OriginatorOrg": "intel.com", "Subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null } ]