get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 105527,
    "url": "http://patches.dpdk.org/api/patches/105527/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211230215505.329674-1-jiayu.hu@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": "<20211230215505.329674-1-jiayu.hu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211230215505.329674-1-jiayu.hu@intel.com",
    "date": "2021-12-30T21:55:04",
    "name": "[v1,0/1] integrate dmadev in vhost",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 539,
        "url": "http://patches.dpdk.org/api/people/539/?format=api",
        "name": "Hu, Jiayu",
        "email": "jiayu.hu@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211230215505.329674-1-jiayu.hu@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/105527/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/105527/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 F3600A0352;\n\tThu, 30 Dec 2021 14:51:00 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 97112410F1;\n\tThu, 30 Dec 2021 14:51:00 +0100 (CET)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 578BA40F35\n for <dev@dpdk.org>; Thu, 30 Dec 2021 14:50:59 +0100 (CET)",
            "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 30 Dec 2021 05:50:58 -0800",
            "from npgdpdkvirtiojiayuhu117.sh.intel.com ([10.67.119.202])\n by orsmga008.jf.intel.com with ESMTP; 30 Dec 2021 05:50:55 -0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1640872259; x=1672408259;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=8eozcNeYdh84XMiaisqdLXKxUITwgGRGuJNq56vTPcI=;\n b=PpcTODxbJQ81bZTQnwLPsLy7BWeeiyMM6LRquWEgq1IAo4a+MQUVySId\n wwPd58lJA3+x6UqMKm8cgL1Gx5Yww7Rx95bzhpiIZqsDRiRTTlo676VV8\n N2D70CGLHYYaiW7lnyk6QeUAeJeOTCYgQtIvDr3NLd8pUxDXYxeR9JdY5\n vDiF2VVAXYwSGaX2D9Sid6zkcgpkEXxKEN0Gh5sBQeOHDkOtMqalwBW5U\n XoZAQVRGjipnXBatvtbpdzOzaDu4YzEU0Od00HNHFpPb9n8wmH1zo1+7O\n i7vEu3N2FwmWi8ae2gjDpqqZZnRq2k02iglBUE9NCFQUbNyhqx6SBXosK A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10212\"; a=\"241881256\"",
            "E=Sophos;i=\"5.88,248,1635231600\"; d=\"scan'208\";a=\"241881256\"",
            "E=Sophos;i=\"5.88,248,1635231600\"; d=\"scan'208\";a=\"524397235\""
        ],
        "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 sunil.pai.g@intel.com, john.mcnamara@intel.com, xuan.ding@intel.com,\n cheng1.jiang@intel.com, liangma@liangbit.com, Jiayu Hu <jiayu.hu@intel.com>",
        "Subject": "[PATCH v1 0/1] integrate dmadev in vhost",
        "Date": "Thu, 30 Dec 2021 16:55:04 -0500",
        "Message-Id": "<20211230215505.329674-1-jiayu.hu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211122105437.3534231-1-jiayu.hu@intel.com>",
        "References": "<20211122105437.3534231-1-jiayu.hu@intel.com>",
        "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\nChange log\n==========\nrfc -> v1:\n- remove useless code\n- support dynamic DMA vchannel ring size (rte_vhost_async_dma_configure)\n- fix several bugs\n- fix typo and coding style issues\n- replace \"while\" with \"for\"\n- update programmer guide \n- support share dma among vhost in vhost example\n- remove \"--dma-type\" in vhost example\n\nJiayu Hu (1):\n  vhost: integrate dmadev in asynchronous datapath\n\n doc/guides/prog_guide/vhost_lib.rst |  70 ++++-----\n examples/vhost/Makefile             |   2 +-\n examples/vhost/ioat.c               | 218 --------------------------\n examples/vhost/ioat.h               |  63 --------\n examples/vhost/main.c               | 230 +++++++++++++++++++++++-----\n examples/vhost/main.h               |  11 ++\n examples/vhost/meson.build          |   6 +-\n lib/vhost/meson.build               |   3 +-\n lib/vhost/rte_vhost_async.h         | 121 +++++----------\n lib/vhost/version.map               |   3 +\n lib/vhost/vhost.c                   | 130 +++++++++++-----\n lib/vhost/vhost.h                   |  53 ++++++-\n lib/vhost/virtio_net.c              | 206 +++++++++++++++++++------\n 13 files changed, 587 insertions(+), 529 deletions(-)\n delete mode 100644 examples/vhost/ioat.c\n delete mode 100644 examples/vhost/ioat.h",
    "diff": null,
    "prefixes": [
        "v1",
        "0/1"
    ]
}