Show a cover letter.

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

{
    "id": 109429,
    "url": "https://patches.dpdk.org/api/covers/109429/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/cover/20220407152546.38167-1-xuan.ding@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20220407152546.38167-1-xuan.ding@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220407152546.38167-1-xuan.ding@intel.com",
    "date": "2022-04-07T15:25:41",
    "name": "[v1,0/5] vhost: support async dequeue data path",
    "submitter": {
        "id": 1401,
        "url": "https://patches.dpdk.org/api/people/1401/?format=api",
        "name": "Ding, Xuan",
        "email": "xuan.ding@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/cover/20220407152546.38167-1-xuan.ding@intel.com/mbox/",
    "series": [
        {
            "id": 22415,
            "url": "https://patches.dpdk.org/api/series/22415/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=22415",
            "date": "2022-04-07T15:25:41",
            "name": "vhost: support async dequeue data path",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/22415/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/covers/109429/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 6F060A0505;\n\tThu,  7 Apr 2022 17:31:19 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 64FD74068B;\n\tThu,  7 Apr 2022 17:31:19 +0200 (CEST)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n by mails.dpdk.org (Postfix) with ESMTP id 7662F40689\n for <dev@dpdk.org>; Thu,  7 Apr 2022 17:31:17 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Apr 2022 08:31:13 -0700",
            "from npg-dpdk-xuan-cbdma.sh.intel.com ([10.67.110.228])\n by orsmga004.jf.intel.com with ESMTP; 07 Apr 2022 08:31:11 -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=1649345477; x=1680881477;\n h=from:to:cc:subject:date:message-id;\n bh=9xNlgPBttJLH/rEazQ0WPnGpgBLlGiM1XGhutnaFUGA=;\n b=IQa14xq5VOPHkYZAmqXuvmtSIrHNMiQRdJHFL9S2vnxTC7gjMHbLEwQk\n aWnnLN6XbKidFCxaCgtK3stwZiDeLwyqEpKdtN8gvRDFkhnESU4aHfdyv\n cmoUQKhI6uJJfzEZbW0eX9SRR9D4lx4oxfz533QuAH78uJAznhqv/sRVD\n CLd6ZI0RASdra9p/JvPH7q7g7q3N4dDedjSLTuexjb1POJQlKNnZqU21a\n AZpqqztHEV9Yl/28uj3PqFAN6bz4/tzcFiirgDj8e6bi14Cf+6pzZHd15\n Mml9ZXY1SbzLiNavpJmPp0RnpCpyRNSsuj0H3Pxs+X/EW7XnCgenW7zu+ w==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10310\"; a=\"322046001\"",
            "E=Sophos;i=\"5.90,242,1643702400\"; d=\"scan'208\";a=\"322046001\"",
            "E=Sophos;i=\"5.90,242,1643702400\"; d=\"scan'208\";a=\"659104852\""
        ],
        "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 v1 0/5] vhost: support async dequeue data path",
        "Date": "Thu,  7 Apr 2022 15:25:41 +0000",
        "Message-Id": "<20220407152546.38167-1-xuan.ding@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "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\nmemory copies to DMA engine, so as to save CPU cycles and improve\nthe copy performance. This patch implements vhost async dequeue data\npath for split ring.\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\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    |   7 +\n doc/guides/rel_notes/release_22_07.rst |   4 +\n doc/guides/sample_app_ug/vhost.rst     |   9 +-\n examples/vhost/main.c                  | 292 +++++++++++-----\n examples/vhost/main.h                  |  35 +-\n examples/vhost/virtio_net.c            |  16 +-\n lib/vhost/rte_vhost_async.h            |  33 ++\n lib/vhost/version.map                  |   3 +\n lib/vhost/vhost.h                      |   1 +\n lib/vhost/virtio_net.c                 | 459 ++++++++++++++++++++++---\n 10 files changed, 711 insertions(+), 148 deletions(-)"
}