Show a cover letter.

GET /api/covers/111178/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 111178,
    "url": "http://patches.dpdk.org/api/covers/111178/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20220516111041.63914-1-xuan.ding@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20220516111041.63914-1-xuan.ding@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220516111041.63914-1-xuan.ding@intel.com",
    "date": "2022-05-16T11:10:36",
    "name": "[v8,0/5] vhost: support async dequeue data path",
    "submitter": {
        "id": 1401,
        "url": "http://patches.dpdk.org/api/people/1401/?format=api",
        "name": "Ding, Xuan",
        "email": "xuan.ding@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20220516111041.63914-1-xuan.ding@intel.com/mbox/",
    "series": [
        {
            "id": 22951,
            "url": "http://patches.dpdk.org/api/series/22951/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22951",
            "date": "2022-05-16T11:10:36",
            "name": "vhost: support async dequeue data path",
            "version": 8,
            "mbox": "http://patches.dpdk.org/series/22951/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/111178/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8E709A00BE;\n\tMon, 16 May 2022 13:15:48 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 74AF240E03;\n\tMon, 16 May 2022 13:15:48 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 6A0D640A7A\n for <dev@dpdk.org>; Mon, 16 May 2022 13:15:47 +0200 (CEST)",
            "from orsmga007.jf.intel.com ([10.7.209.58])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 16 May 2022 04:15:36 -0700",
            "from npg-dpdk-xuan-cbdma.sh.intel.com ([10.67.110.228])\n by orsmga007.jf.intel.com with ESMTP; 16 May 2022 04:15:31 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1652699747; x=1684235747;\n h=from:to:cc:subject:date:message-id:in-reply-to: references;\n bh=NLc07vgXheftFtYE2dIeRZMxQL3349jR2AS2kVfh5pY=;\n b=X98P4JhFZVrKn2o7Qvbqf8w9Y0Fd1bgKkrXrUgYSowHvdLE1WmYnZFld\n hoIW7mHM7Hq9ub8P6QGirU01e5MfwMolMXeKIPcByLZF5f9OAFBq2Z6qj\n w37ruxLT+AMN7ebBW7OfiNbADBwFRvUhsEk9F3FB565R8jYVxJSyfrK26\n 9l0Fn6hU7t2AagJ9bXg/pEalmpGF/XI4X4kVxiM1puW1jVJE/ff7Lw5Vw\n NvsOxZOY/uOa02BJaISUEHOjK0W7csxjNXIAu9SkVGchO1X3ZX3SGmsT3\n zARKuKaEm9OZI7BE21Zmn1FH/bRUro59Us66FJaFW5OKXgCjX0QxLg/8v Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10348\"; a=\"296063031\"",
            "E=Sophos;i=\"5.91,229,1647327600\"; d=\"scan'208\";a=\"296063031\"",
            "E=Sophos;i=\"5.91,229,1647327600\"; d=\"scan'208\";a=\"568272340\""
        ],
        "X-ExtLoop1": "1",
        "From": "xuan.ding@intel.com",
        "To": "maxime.coquelin@redhat.com,\n\tchenbo.xia@intel.com",
        "Cc": "dev@dpdk.org, jiayu.hu@intel.com, cheng1.jiang@intel.com,\n sunil.pai.g@intel.com, liangma@liangbit.com,\n Xuan Ding <xuan.ding@intel.com>",
        "Subject": "[PATCH v8 0/5] vhost: support async dequeue data path",
        "Date": "Mon, 16 May 2022 11:10:36 +0000",
        "Message-Id": "<20220516111041.63914-1-xuan.ding@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20220407152546.38167-1-xuan.ding@intel.com>",
        "References": "<20220407152546.38167-1-xuan.ding@intel.com>",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "From: Xuan Ding <xuan.ding@intel.com>\n\nThe presence of asynchronous path allows applications to offload memory\ncopies to DMA engine, so as to save CPU cycles and improve the copy\nperformance. This patch set implements vhost async dequeue data path\nfor split ring. The code is based on latest enqueue changes [1].\n\nThis patch set is a new design and implementation of [2]. Since dmadev\nwas introduced in DPDK 21.11, to simplify application logics, this patch\nintegrates dmadev in vhost. With dmadev integrated, vhost supports M:N\nmapping between vrings and DMA virtual channels. Specifically, one vring\ncan use multiple different DMA channels and one DMA channel can be\nshared by multiple vrings at the same time.\n\nA new asynchronous dequeue function is introduced:\n        1) rte_vhost_async_try_dequeue_burst(int vid, uint16_t queue_id,\n                struct rte_mempool *mbuf_pool, struct rte_mbuf **pkts,\n                uint16_t count, int *nr_inflight,\n                uint16_t dma_id, uint16_t vchan_id)\n\n        Receive packets from the guest and offloads copies to DMA\nvirtual channel.\n\n[1] https://mails.dpdk.org/archives/dev/2022-February/234555.html\n[2] https://mails.dpdk.org/archives/dev/2021-September/218591.html\n\nv7->v8:\n* change dma_id to int16_t\n* refine API documentation\n\nv6->v7:\n* correct code formatting\n* change some functions to inline\n\nv5->v6:\n* adjust EXPERIMENTAL header\n\nv4->v5:\n* rebase to latest DPDK\n* add some checks\n\nv3->v4:\n* fix CI build warnings\n* adjust some indentation\n* pass vq instead of queue_id\n\nv2->v3:\n* fix mbuf not updated correctly for large packets\n\nv1->v2:\n* fix a typo\n* fix a bug in desc_to_mbuf filling\n\nRFC v3 -> v1:\n* add sync and async path descriptor to mbuf refactoring\n* add API description in docs\n\nRFC v2 -> RFC v3:\n* rebase to latest DPDK version\n\nRFC v1 -> RFC v2:\n* fix one bug in example\n* rename vchan to vchan_id\n* check if dma_id and vchan_id valid\n* rework all the logs to new standard\n\nXuan Ding (5):\n  vhost: prepare sync for descriptor to mbuf refactoring\n  vhost: prepare async for descriptor to mbuf refactoring\n  vhost: merge sync and async descriptor to mbuf filling\n  vhost: support async dequeue for split ring\n  examples/vhost: support async dequeue data path\n\n doc/guides/prog_guide/vhost_lib.rst    |   6 +\n doc/guides/rel_notes/release_22_07.rst |   5 +\n doc/guides/sample_app_ug/vhost.rst     |   9 +-\n examples/vhost/main.c                  | 286 ++++++++++-----\n examples/vhost/main.h                  |  32 +-\n examples/vhost/virtio_net.c            |  16 +-\n lib/vhost/rte_vhost_async.h            |  37 ++\n lib/vhost/version.map                  |   2 +-\n lib/vhost/vhost.h                      |   1 +\n lib/vhost/virtio_net.c                 | 473 ++++++++++++++++++++++---\n 10 files changed, 715 insertions(+), 152 deletions(-)"
}