Show a cover letter.

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

{
    "id": 45942,
    "url": "http://patches.dpdk.org/api/covers/45942/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20181003130646.20676-1-jfreimann@redhat.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": "<20181003130646.20676-1-jfreimann@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20181003130646.20676-1-jfreimann@redhat.com",
    "date": "2018-10-03T13:06:38",
    "name": "[v7,0/8] implement packed virtqueues",
    "submitter": {
        "id": 745,
        "url": "http://patches.dpdk.org/api/people/745/?format=api",
        "name": "Jens Freimann",
        "email": "jfreimann@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20181003130646.20676-1-jfreimann@redhat.com/mbox/",
    "series": [
        {
            "id": 1662,
            "url": "http://patches.dpdk.org/api/series/1662/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1662",
            "date": "2018-10-03T13:06:38",
            "name": "implement packed virtqueues",
            "version": 7,
            "mbox": "http://patches.dpdk.org/series/1662/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/45942/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 9AF821B161;\n\tWed,  3 Oct 2018 15:06:56 +0200 (CEST)",
            "from mx1.redhat.com (mx1.redhat.com [209.132.183.28])\n\tby dpdk.org (Postfix) with ESMTP id B929E5B36\n\tfor <dev@dpdk.org>; Wed,  3 Oct 2018 15:06:54 +0200 (CEST)",
            "from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 13A713003D26;\n\tWed,  3 Oct 2018 13:06:54 +0000 (UTC)",
            "from localhost (ovpn-117-117.ams2.redhat.com [10.36.117.117])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id C399767158;\n\tWed,  3 Oct 2018 13:06:48 +0000 (UTC)"
        ],
        "From": "Jens Freimann <jfreimann@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "tiwei.bie@intel.com,\n\tmaxime.coquelin@redhat.com,\n\tGavin.Hu@arm.com",
        "Date": "Wed,  3 Oct 2018 15:06:38 +0200",
        "Message-Id": "<20181003130646.20676-1-jfreimann@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.12",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.47]); Wed, 03 Oct 2018 13:06:54 +0000 (UTC)",
        "Subject": "[dpdk-dev] [PATCH v7 0/8] implement packed virtqueues",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "I'm sending this out to get some comments especially on the TX path code. \n\nI added support for mergeable rx buffers, out of order processing and\nindirect. The receive path works well but the TX path sometimes locks up\nafter a random number of packets transmitted, so please review this\npatch extra careful. This is also why I didn't add any new performance\nnumbers to the cover letter yet.\n\nTo support out-of-order processing I used the vq_desc_extra struct to\nadd a .next field and use it as a list for managing descriptors. This\nseemed to add less complexity to the code than adding a new data\nstructure to use as a list for packed queue descriptors. \n\nI also took out the patch for supporting virtio-user as it turned out\nmore complex than expected. I will try to get it working for the next\nversion, but if I don't can we add it in a later pach set (and then\nprobably not in 18.11?]\n\nThis is a basic implementation of packed virtqueues as specified in the\nVirtio 1.1 draft. A compiled version of the current draft is available\nat https://github.com/oasis-tcs/virtio-docs.git (or as .pdf at\nhttps://github.com/oasis-tcs/virtio-docs/blob/master/virtio-v1.1-packed-wd10.pdf\n\nA packed virtqueue is different from a split virtqueue in that it\nconsists of only a single descriptor ring that replaces available and\nused ring, index and descriptor pointers.\n\nEach descriptor is readable and writable and has a flags field. These flags\nwill mark if a descriptor is available or used.  To detect new available descriptors\neven after the ring has wrapped, device and driver each have a\nsingle-bit wrap counter that is flipped from 0 to 1 and vice versa every time\nthe last descriptor in the ring is used/made available.\n\n\nJens Freimann (8):\n  net/virtio: vring init for packed queues\n  net/virtio: add packed virtqueue defines\n  net/virtio: add packed virtqueue helpers\n  net/virtio: dump packed virtqueue data\n  net/virtio: implement transmit path for packed queues\n  net/virtio: implement receive path for packed queues\n  net/virtio: add virtio send command packed queue support\n  net/virtio: enable packed virtqueues by default\n\n drivers/net/virtio/virtio_ethdev.c | 161 +++++++--\n drivers/net/virtio/virtio_ethdev.h |   5 +\n drivers/net/virtio/virtio_pci.h    |   8 +\n drivers/net/virtio/virtio_ring.h   |  96 ++++-\n drivers/net/virtio/virtio_rxtx.c   | 544 ++++++++++++++++++++++++++++-\n drivers/net/virtio/virtqueue.c     |  23 ++\n drivers/net/virtio/virtqueue.h     |  52 ++-\n 7 files changed, 846 insertions(+), 43 deletions(-)"
}