Show a cover letter.

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

{
    "id": 116181,
    "url": "http://patches.dpdk.org/api/covers/116181/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/cover.1662952732.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.1662952732.git.kangjie.xu@linux.alibaba.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1662952732.git.kangjie.xu@linux.alibaba.com",
    "date": "2022-09-12T03:36:45",
    "name": "[v3,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.1662952732.git.kangjie.xu@linux.alibaba.com/mbox/",
    "series": [
        {
            "id": 24630,
            "url": "http://patches.dpdk.org/api/series/24630/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=24630",
            "date": "2022-09-12T03:36:45",
            "name": "vhost: support VIRTIO_F_RING_RESET for vhost-user",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/24630/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/116181/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 D487EA00C5;\n\tMon, 12 Sep 2022 05:36:54 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 601704021D;\n\tMon, 12 Sep 2022 05:36:54 +0200 (CEST)",
            "from out30-133.freemail.mail.aliyun.com\n (out30-133.freemail.mail.aliyun.com [115.124.30.133])\n by mails.dpdk.org (Postfix) with ESMTP id 4C2E1400D4\n for <dev@dpdk.org>; Mon, 12 Sep 2022 05:36:52 +0200 (CEST)",
            "from localhost(mailfrom:kangjie.xu@linux.alibaba.com\n fp:SMTPD_---0VPNKBhS_1662953807) by smtp.aliyun-inc.com;\n Mon, 12 Sep 2022 11:36:48 +0800"
        ],
        "X-Alimail-AntiSpam": "AC=PASS; BC=-1|-1; BR=01201311R171e4; CH=green;\n DM=||false|;\n DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=ay29a033018046059;\n MF=kangjie.xu@linux.alibaba.com; NM=1; PH=DS; RN=7; SR=0;\n TI=SMTPD_---0VPNKBhS_1662953807;",
        "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 jasowang@redhat.com, mst@redhat.com",
        "Subject": "[PATCH v3 0/2] vhost: support VIRTIO_F_RING_RESET for vhost-user",
        "Date": "Mon, 12 Sep 2022 11:36:45 +0800",
        "Message-Id": "<cover.1662952732.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. We\nreuse the existing vhost protocol and make small modifications to\nthe VHOST_USER_GET_VRING_BASE implementation(do not destroy the device\nunless the vq is the last active one in the device).\n\nVirtqueue reset process can be concluded as two parts:\n1. The driver can reset a virtqueue. It will send VHOST_USER_GET_VRING_BASE\nto DPDK. After received the message, DPDK will stop the virtqueue.\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.1.50 (With vq reset support)\n    Guest: 5.19.0-rc3 (With vq reset support)\n    DPDK: 22.11-rc0\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@\nlinux.alibaba.com/\n\nQEMU Patch:\n    https://lore.kernel.org/qemu-devel/cover.1662949366.git.kangjie.xu@\nlinux.alibaba.com/\n    https://lore.kernel.org/qemu-devel/cover.1662916759.git.kangjie.xu@\nlinux.alibaba.com/\n\nLooking forward to your review and comments.\n\nKangjie Xu (2):\n  vhost: destroy device when all vqs are inactive\n  vhost: support VIRTIO_F_RING_RESET for vhost-user\n\n lib/vhost/vhost.h      |  8 +++++++-\n lib/vhost/vhost_user.c | 10 ++++++++--\n 2 files changed, 15 insertions(+), 3 deletions(-)"
}