Show a cover letter.

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

{
    "id": 115829,
    "url": "http://patches.dpdk.org/api/covers/115829/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/cover.1662347861.git.kangjie.xu@linux.alibaba.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": "<cover.1662347861.git.kangjie.xu@linux.alibaba.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1662347861.git.kangjie.xu@linux.alibaba.com",
    "date": "2022-09-05T03:48:03",
    "name": "[v2,0/2] vhost: support VIRTIO_F_RING_RESET for vhost-user",
    "submitter": {
        "id": 2778,
        "url": "http://patches.dpdk.org/api/people/2778/?format=api",
        "name": "Kangjie Xu",
        "email": "kangjie.xu@linux.alibaba.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/cover.1662347861.git.kangjie.xu@linux.alibaba.com/mbox/",
    "series": [
        {
            "id": 24529,
            "url": "http://patches.dpdk.org/api/series/24529/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=24529",
            "date": "2022-09-05T03:48:03",
            "name": "vhost: support VIRTIO_F_RING_RESET for vhost-user",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/24529/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/115829/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 0EC7CA0556;\n\tMon,  5 Sep 2022 05:48:13 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E39EA40698;\n\tMon,  5 Sep 2022 05:48:11 +0200 (CEST)",
            "from out30-43.freemail.mail.aliyun.com\n (out30-43.freemail.mail.aliyun.com [115.124.30.43])\n by mails.dpdk.org (Postfix) with ESMTP id A5300400D4\n for <dev@dpdk.org>; Mon,  5 Sep 2022 05:48:09 +0200 (CEST)",
            "from localhost(mailfrom:kangjie.xu@linux.alibaba.com\n fp:SMTPD_---0VOK9Zbv_1662349685) by smtp.aliyun-inc.com;\n Mon, 05 Sep 2022 11:48:06 +0800"
        ],
        "X-Alimail-AntiSpam": "AC=PASS; BC=-1|-1; BR=01201311R891e4; CH=green;\n DM=||false|;\n DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=ay29a033018046056;\n MF=kangjie.xu@linux.alibaba.com; NM=1; PH=DS; RN=7; SR=0;\n TI=SMTPD_---0VOK9Zbv_1662349685;",
        "From": "Kangjie Xu <kangjie.xu@linux.alibaba.com>",
        "To": "maxime.coquelin@redhat.com,\n\tchenbo.xia@intel.com",
        "Cc": "dev@dpdk.org, xuanzhuo@linux.alibaba.com, hengqi@linux.alibaba.com,\n jasonwang@redhat.com, mst@redhat.com",
        "Subject": "[PATCH v2 0/2] vhost: support VIRTIO_F_RING_RESET for vhost-user",
        "Date": "Mon,  5 Sep 2022 11:48:03 +0800",
        "Message-Id": "<cover.1662347861.git.kangjie.xu@linux.alibaba.com>",
        "X-Mailer": "git-send-email 2.32.0",
        "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": "Add VIRTIO_F_RING_RESET, which indicates that the driver can reset a\nvirtqueue individually.\n\nVIRTIO_F_RING_RESET feature is added to virtio-spec 1.2. The relevant\ninformation is in\n    https://github.com/oasis-tcs/virtio-spec/issues/124\n    https://github.com/oasis-tcs/virtio-spec/issues/139\n\nThe implementation only adds the feature bit in supported features.\nIt also adds a new vhost-user message VHOST_USER_RESET_VRING. The\nrelated definition is defined in the related QEMU patch set:\n  https://lore.kernel.org/qemu-devel/cover.1661510725.git.kangjie.xu@linux.alibaba.com/T/#t\n\nThe virtqueue reset process can be concluded as two parts:\n1. The driver can reset a virtqueue. It will send VHOST_USER_RESET_VRING\nto DPDK. After received the message, DPDK will reset the virtqueue. The\nnew message VHOST_USER_RESET_VRING has been acked by the QEMU virtio\nmaintainer:\n    https://lore.kernel.org/qemu-devel/57362274-b2fb-a47d-fea7-d3ebcfad967b@redhat.com/\n\n2. After the virtqueue is disabled, the driver may optionally re-enable\nit. To avoid confusion with VHOST_USER_SET_VRING_ENABLE, we call this\npart as \"restart\". The virtqueue's information may be changed when\nrestarting it. Thus, the information of the reset virtqueue should be\nupdated. This part is basically similar to when the virtqueue is started\nfor the first time, except that the restart process does not need to set\nfeatures and set mem table since they do not change. QEMU will send\nmessages containing size, base, addr, kickfd and callfd of the virtqueue\nin order. Specifically, the DPDK will receive these messages in order:\n    a. VHOST_USER_SET_VRING_NUM\n    b. VHOST_USER_SET_VRING_BASE\n    c. VHOST_USER_SET_VRING_ADDR\n    d. VHOST_USER_SET_VRING_KICK\n    e. VHOST_USER_SET_VRING_CALL\n    f. VHOST_USER_SET_VRING_ENABLE\nThe last VHOST_USER_SET_VRING_ENABLE message with \"payload.state.num\" set\nto 1, will be sent to enable the virtqueue and the restart process is\nfinished.\n\nTest environment:\n    Host: 5.4.189\n    Qemu: QEMU emulator version 7.0.50 (With vq reset support)\n    Guest: 5.19.0-rc3 (With vq reset support)\n    DPDK: 22.07-rc1\n    Test Cmd: ethtool -g eth1; ethtool -G eth1 rx $1 tx $2;\n            ethtool -g eth1;\n\n    The driver can resize the virtio queue, then virtio queue reset\n    function should be triggered.\n\nGuest Kernel Patch:\n    https://lore.kernel.org/bpf/20220801063902.129329-1-xuanzhuo@linux.alibaba.com/\n\nQEMU Patch:\n    https://lore.kernel.org/qemu-devel/cover.1661510725.git.kangjie.xu@linux.alibaba.com/T/\n    https://lore.kernel.org/qemu-devel/cover.1661414345.git.kangjie.xu@linux.alibaba.com/T/\n\nLooking forward to your review and comments.\n\nKangjie Xu (2):\n  vhost: support VIRTIO_F_RING_RESET for vhost-user\n  vhost: introduce VHOST_USER_RESET_VRING\n\n lib/vhost/vhost.c      |  2 +-\n lib/vhost/vhost.h      |  9 ++++++++-\n lib/vhost/vhost_user.c | 27 ++++++++++++++++++++++++++-\n lib/vhost/vhost_user.h |  1 +\n 4 files changed, 36 insertions(+), 3 deletions(-)"
}