List comments

GET /api/patches/74616/comments/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 116496,
        "web_url": "https://patches.dpdk.org/comment/116496/",
        "msgid": "<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/",
            "name": "Xia, Chenbo",
            "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": {
            "Accept-Language": "en-US, zh-CN",
            "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=",
            "x-ms-oob-tlc-oobclassifiers": "OLM:10000;",
            "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR11MB3600",
            "authentication-results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=intel.com;",
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-MS-TNEF-Correlator": "",
            "List-Post": "<mailto:dev@dpdk.org>",
            "x-ms-exchange-senderadcheck": "1",
            "X-Mailman-Version": "2.1.15",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "Subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs",
            "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "From": "\"Xia, Chenbo\" <chenbo.xia@intel.com>",
            "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"
            ],
            "x-originating-ip": "[192.102.204.36]",
            "x-microsoft-antispam": "BCL:0;",
            "x-ms-exchange-transport-forked": "True",
            "X-MS-Exchange-CrossTenant-AuthSource": "MN2PR11MB4063.namprd11.prod.outlook.com",
            "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==",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
            "X-ExtLoop1": "1",
            "Message-ID": "\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>",
            "X-MS-Exchange-CrossTenant-userprincipalname": "\n glAldbEa0bhxbnNOa42YjoWiI+JcUcFNXXyFFzz0NPwFlKzPWsTwADhrQeZ1qCZKYhDm0fxxNWMTueDfxjNgPA==",
            "To": "\"Fu, Patrick\" <patrick.fu@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"maxime.coquelin@redhat.com\" <maxime.coquelin@redhat.com>",
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "x-ms-publictraffictype": "Email",
            "Content-Language": "en-US",
            "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",
            "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\""
            ],
            "IronPort-SDR": [
                "\n b6DiYD6nHMAqVXQAmS5t9QPWTIjZxloa5XhJuUX5wsl0k7mIK6FiZxoxnTOiMe6+yhViuvtAvb\n a0yIytppLNNg==",
                "\n sL9OZvUVlENm3Xf0dGI1IOcWnZA/WKAUOL6z482D6zSIjrwcZIRqs3Tpqn2lLSetjh+4bXlG5Q\n tZWsWPVyMp0A=="
            ],
            "Thread-Index": "AQHWYBdT226mcYFOV0WzNGnqdhGyRqkTchGQ",
            "X-OriginatorOrg": "intel.com",
            "X-MS-Exchange-CrossTenant-originalarrivaltime": "22 Jul 2020 11:21:27.2811 (UTC)",
            "Thread-Topic": "[PATCH v1 1/2] doc: update guides for vhost async APIs",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "x-microsoft-antispam-message-info": "\n ZM90CoqMdEp2pobeXwiKtvA1W3RiPBaMPTNPBjFthti5aufgrIQF27O67d45Rg5dKHAnNuodrBT9iBU9TAuP31821w7hR+OBEptIeuHvTAw3ARiKkElnmENjqZ0BUcMJ/0AOkq1CWyHFQ+ziscLqmcTcJy88CfNDntKqCPPz1SmUQcUXnSFECD/Df5YziFICvaKIO6craqcEcEYHwprHzeVlcVshn8RRjvrQKp52PnklxzYgA500yMshklN9B0zpu8GEHg+J3wj0Q7YssuGIQs2yco/DaYl39jSqqNTloPML/z5jTQW8HKvrpNNFz/5Gv0hyC51TsevTtEKQme+cEA==",
            "x-ms-traffictypediagnostic": "MN2PR11MB3600:",
            "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
            "MIME-Version": "1.0",
            "X-BeenThere": "dev@dpdk.org",
            "References": "<20200722105741.3421255-1-patrick.fu@intel.com>\n <20200722105741.3421255-2-patrick.fu@intel.com>",
            "Content-Type": "text/plain; charset=\"us-ascii\"",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "X-MS-Exchange-CrossTenant-id": "46c98d88-e344-4ed4-8496-4ed7712e255d",
            "x-ms-office365-filtering-correlation-id": "66f3bd11-b590-480e-beed-08d82e31601b",
            "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 66f3bd11-b590-480e-beed-08d82e31601b",
            "Date": "Wed, 22 Jul 2020 11:21:27 +0000",
            "Content-Transfer-Encoding": "quoted-printable",
            "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-Has-Attach": "",
            "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",
            "In-Reply-To": "<20200722105741.3421255-2-patrick.fu@intel.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=MfoYW2zJiNDmbzD0s18po4MhXvnjnYcH/7xvoL7SgC5FNYc74kmEyMmQu673NzDRXopZ1LU9x6ScReBcRu8yfK19OR5wBuWtrtSIv2xQtjJxfFnp7QuQjitbRIJqqrA6rgKzMIExgr7xa5cSe7nD4KkndUhHLEdhYIXUBx/yfUXrKBhK81ogD2dkLsvwr6g7Xbyzj8P1FPAeKqm3HDtqely114uGSThjvHRmPm1PA9mSpV4gJLB91Xm6Kv80EkZNE0npHybcLeA2skCybWdtvnEmKbHH5sNy6OIMCzzcXRB/sdQTa8KSEIDZzZ/O+51HWKp2593loOBk3IVa9m9Dsw==",
            "x-microsoft-antispam-prvs": "\n <MN2PR11MB360091E1CED43B5AB15E09699C790@MN2PR11MB3600.namprd11.prod.outlook.com>"
        }
    },
    {
        "id": 116510,
        "web_url": "https://patches.dpdk.org/comment/116510/",
        "msgid": "<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/",
            "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": {
            "Accept-Language": "en-US",
            "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=",
            "x-ms-oob-tlc-oobclassifiers": "OLM:10000;",
            "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR11MB3526",
            "authentication-results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=intel.com;",
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-MS-TNEF-Correlator": "",
            "List-Post": "<mailto:dev@dpdk.org>",
            "x-ms-exchange-senderadcheck": "1",
            "X-Mailman-Version": "2.1.15",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "Subject": "Re: [dpdk-dev] [PATCH v1 1/2] doc: update guides for vhost async\n\tAPIs",
            "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "From": "\"Fu, Patrick\" <patrick.fu@intel.com>",
            "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"
            ],
            "x-originating-ip": "[192.198.147.200]",
            "x-microsoft-antispam": "BCL:0;",
            "x-ms-exchange-transport-forked": "True",
            "X-MS-Exchange-CrossTenant-AuthSource": "BYAPR11MB3735.namprd11.prod.outlook.com",
            "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==",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
            "X-ExtLoop1": "1",
            "Message-ID": "\n <BYAPR11MB37357C2A1B323B4F2041017A84790@BYAPR11MB3735.namprd11.prod.outlook.com>",
            "X-MS-Exchange-CrossTenant-userprincipalname": "\n jdFvg1+AiiIyYcADXYdYNFiq8vnsXRxQM/Ohy4qqNig0mMr7+OW1078oUdkt6I+5BvYZJixMVE1m1GjBVDq5nA==",
            "To": "\"Xia, Chenbo\" <chenbo.xia@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"maxime.coquelin@redhat.com\" <maxime.coquelin@redhat.com>",
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "dlp-reaction": "no-action",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "dlp-product": "dlpe-windows",
            "x-ms-publictraffictype": "Email",
            "Content-Language": "en-US",
            "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",
            "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\""
            ],
            "IronPort-SDR": [
                "\n n4gXOhUDQEZpkjVNw441IhbP5RYddwht4dqS22gA7ZF+nTXt+UXRw4IqBgO66woz3/1aCyYlos\n xccIvYJ6NVYg==",
                "\n kTZGeRva7GO7j5rd9y1l0T5MCYCUDa3GY+bFKGb370ZyAMeQbNwW+ioTJmOpYxwkXQxz3Cmz4n\n ayTET030vCMw=="
            ],
            "Thread-Index": "AQHWYBdTwCMx+EEls0Wesfm3jrqaPakTdEyAgAA+OzA=",
            "X-OriginatorOrg": "intel.com",
            "X-MS-Exchange-CrossTenant-originalarrivaltime": "22 Jul 2020 15:06:19.7294 (UTC)",
            "Thread-Topic": "[PATCH v1 1/2] doc: update guides for vhost async APIs",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "x-microsoft-antispam-message-info": "\n lm25eh3FOrZnQE0QEH0x5uRDJtZlWodGBeIJMR+s6KVPGavWnUXoEpKXpqvVUktyuq8yOzJIeJdmH5Kw5z6ZnTKMk+yTTK8O4v0y2fKDiEWKFetppzXB6WWVXaLNOl6o88GyEpdIvFvbHbp+Y0cO8ZaN1MLFwao6z4uuVjI9hoEbieRNOc/vmOR3KUjJ+F3Vy1tKqhRCWAkBxkkAVCmPEAd8vDB0bvLyHygdZmM4Cpkx2WEJ7xRthdJRRVHuw6WeWBX4ZMrKqPjcMsv709/siOkpzshwtDXK0v+yTlk3BrWNKylBa08TFfsQCVyzW58bxOCQ9fl0NVpKuU2Ht6Rleg==",
            "x-ms-traffictypediagnostic": "BYAPR11MB3526:",
            "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
            "MIME-Version": "1.0",
            "dlp-version": "11.2.0.6",
            "X-BeenThere": "dev@dpdk.org",
            "References": "<20200722105741.3421255-1-patrick.fu@intel.com>\n <20200722105741.3421255-2-patrick.fu@intel.com>\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>",
            "Content-Type": "text/plain; charset=\"us-ascii\"",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "X-MS-Exchange-CrossTenant-id": "46c98d88-e344-4ed4-8496-4ed7712e255d",
            "x-ms-office365-filtering-correlation-id": "2382c6ad-7109-4367-e2e6-08d82e50ca4c",
            "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 2382c6ad-7109-4367-e2e6-08d82e50ca4c",
            "Date": "Wed, 22 Jul 2020 15:06:19 +0000",
            "Content-Transfer-Encoding": "quoted-printable",
            "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-Has-Attach": "",
            "x-ms-exchange-antispam-messagedata": "\n m+4M6gLrcxmaY0S4b3+FkrknvSSE9eN1cdJgWRxxWPn1f/lGRbSd0atJL+OSDQZWzipNXWQairYM5P3MC4+7JkuAVFSv3e03UW/wycIeUAckeyrlB6CMg317LYZXEtGFYj3R7A7fr/7764VKppp6u4RfFJuohIOTV1FNZotOSDZ2hPFUh9BaTC5FymJpzby77iz3Z0GpKtRiHyij6uIA5kzTsHj5RCpN0eAjRRqy5S80jZRZhnXNdUZgOrAZdRUkcxYKtzq8UQdB9LL94Yv/1urxaSdf36d+H6HWc75FhrHaQgX3zmMcYiaGKURtYY4Yi6o2Ogzuj+BmxbL+nYSaKHdGietKgtK4BNRElVKiHERQW0aZquX2mNky3P8VfbJMcEMGD5YvLQ4L3ckS2IjTurEmmD6KlHDCCGX7jcDOTrRjaJUgmqP8lY8JWkBwTTeAWuOJgZSDTFhKbpIZ4WzoXjWlX3lse3msinmr1uVCR+ylOQxttGX6gfNm2kqsncdz",
            "In-Reply-To": "\n <MN2PR11MB406305F1F8A75DFA46A3F3C79C790@MN2PR11MB4063.namprd11.prod.outlook.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "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==",
            "x-microsoft-antispam-prvs": "\n <BYAPR11MB3526BB1EC850D6AB6737C9C884790@BYAPR11MB3526.namprd11.prod.outlook.com>"
        }
    }
]