get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/104543/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 104543,
    "url": "https://patches.dpdk.org/api/patches/104543/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20211122105437.3534231-1-jiayu.hu@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": "<20211122105437.3534231-1-jiayu.hu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211122105437.3534231-1-jiayu.hu@intel.com",
    "date": "2021-11-22T10:54:36",
    "name": "[RFC,0/1] integrate dmadev in vhost",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 539,
        "url": "https://patches.dpdk.org/api/people/539/?format=api",
        "name": "Hu, Jiayu",
        "email": "jiayu.hu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20211122105437.3534231-1-jiayu.hu@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/104543/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/104543/checks/",
    "tags": {},
    "related": [],
    "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 4EB9EA0C41;\n\tMon, 22 Nov 2021 03:52:53 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B36234014E;\n\tMon, 22 Nov 2021 03:52:52 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by mails.dpdk.org (Postfix) with ESMTP id 0EA714003C\n for <dev@dpdk.org>; Mon, 22 Nov 2021 03:52:50 +0100 (CET)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 21 Nov 2021 18:52:49 -0800",
            "from npgdpdkvirtiojiayuhu117.sh.intel.com ([10.67.119.202])\n by orsmga004.jf.intel.com with ESMTP; 21 Nov 2021 18:52:45 -0800"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10175\"; a=\"232195042\"",
            "E=Sophos;i=\"5.87,253,1631602800\"; d=\"scan'208\";a=\"232195042\"",
            "E=Sophos;i=\"5.87,253,1631602800\"; d=\"scan'208\";a=\"606261046\""
        ],
        "X-ExtLoop1": "1",
        "From": "Jiayu Hu <jiayu.hu@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "maxime.coquelin@redhat.com, i.maximets@ovn.org, chenbo.xia@intel.com,\n bruce.richardson@intel.com, harry.van.haaren@intel.com,\n john.mcnamara@intel.com, sunil.pai.g@intel.com,\n Jiayu Hu <jiayu.hu@intel.com>",
        "Subject": "[RFC 0/1] integrate dmadev in vhost",
        "Date": "Mon, 22 Nov 2021 05:54:36 -0500",
        "Message-Id": "<20211122105437.3534231-1-jiayu.hu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "Since dmadev is introduced in 21.11, to avoid the overhead of vhost DMA\nabstraction layer and simplify application logics, this patch integrates\ndmadev in vhost.\n\nTo enable the flexibility of using DMA devices in different function\nmodules, not limited in vhost, vhost doesn't manage DMA devices.\nApplications, like OVS, need to manage and configure DMA devices and\ntell vhost what DMA device to use in every dataplane function call.\n\nIn addition, vhost supports M:N mapping between vrings and DMA virtual\nchannels. Specifically, one vring can use multiple different DMA channels\nand one DMA channel can be shared by multiple vrings at the same time.\nThe reason of enabling one vring to use multiple DMA channels is that\nit's possible that more than one dataplane threads enqueue packets to\nthe same vring with their own DMA virtual channels. Besides, the number\nof DMA devices is limited. For the purpose of scaling, it's necessary to\nsupport sharing DMA channels among vrings.\n\nAs only enqueue path is enabled DMA acceleration, the new dataplane\nfunctions are like:\n1). rte_vhost_submit_enqueue_burst(vid, queue_id, pkts, count, dma_id,\n    dma_vchan):\n    Get descriptors and submit copies to DMA virtual channel for the\n    packets that need to be send to VM.\n \n2). rte_vhost_poll_enqueue_completed(vid, queue_id, pkts, count, dma_id,\n    dma_vchan):\n    Check completed DMA copies from the given DMA virtual channel and\n    write back corresponding descriptors to vring.\n\nOVS needs to call rte_vhost_poll_enqueue_completed to clean in-flight\ncopies on previous call and it can be called inside rxq_recv function,\nso that it doesn't require big change in OVS datapath. For example:\nnetdev_dpdk_vhost_rxq_recv() {\n\t...\n\tqid = rxq->queue_id * VIRTIO_QNUM + VIRTIO_RXQ;\n\trte_vhost_poll_enqueue_completed(vid, qid, ...);\n}\n\nJiayu Hu (1):\n  vhost: integrate dmadev in asynchronous datapath\n\n doc/guides/prog_guide/vhost_lib.rst |  63 ++++----\n examples/vhost/ioat.c               | 218 ----------------------------\n examples/vhost/ioat.h               |  63 --------\n examples/vhost/main.c               | 144 +++++++++++++++---\n examples/vhost/main.h               |  12 ++\n examples/vhost/meson.build          |   6 +-\n lib/vhost/meson.build               |   3 +-\n lib/vhost/rte_vhost_async.h         |  73 +++-------\n lib/vhost/vhost.c                   |  37 ++---\n lib/vhost/vhost.h                   |  45 +++++-\n lib/vhost/virtio_net.c              | 198 ++++++++++++++++++++-----\n 11 files changed, 410 insertions(+), 452 deletions(-)\n delete mode 100644 examples/vhost/ioat.c\n delete mode 100644 examples/vhost/ioat.h",
    "diff": null,
    "prefixes": [
        "RFC",
        "0/1"
    ]
}