get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 61439,
    "url": "https://patches.dpdk.org/api/patches/61439/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20191017200807.20772-1-honnappa.nagarahalli@arm.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": "<20191017200807.20772-1-honnappa.nagarahalli@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20191017200807.20772-1-honnappa.nagarahalli@arm.com",
    "date": "2019-10-17T20:08:04",
    "name": "[v5,0/3] lib/ring: APIs to support custom element size",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1045,
        "url": "https://patches.dpdk.org/api/people/1045/?format=api",
        "name": "Honnappa Nagarahalli",
        "email": "honnappa.nagarahalli@arm.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20191017200807.20772-1-honnappa.nagarahalli@arm.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/61439/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/61439/checks/",
    "tags": {},
    "related": [],
    "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 2EA871E880;\n\tThu, 17 Oct 2019 22:08:39 +0200 (CEST)",
            "from foss.arm.com (unknown [217.140.110.172])\n\tby dpdk.org (Postfix) with ESMTP id 2A9F11D50B\n\tfor <dev@dpdk.org>; Thu, 17 Oct 2019 22:08:38 +0200 (CEST)",
            "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 91859328;\n\tThu, 17 Oct 2019 13:08:28 -0700 (PDT)",
            "from qc2400f-1.austin.arm.com (qc2400f-1.austin.arm.com\n\t[10.118.12.34])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n\t78F6E3F68E; Thu, 17 Oct 2019 13:08:28 -0700 (PDT)"
        ],
        "From": "Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>",
        "To": "olivier.matz@6wind.com, sthemmin@microsoft.com, jerinj@marvell.com,\n\tbruce.richardson@intel.com, david.marchand@redhat.com,\n\tpbhagavatula@marvell.com, konstantin.ananyev@intel.com,\n\tdrc@linux.vnet.ibm.com, hemant.agrawal@nxp.com,\n\thonnappa.nagarahalli@arm.com",
        "Cc": "dev@dpdk.org, dharmik.thakkar@arm.com, ruifeng.wang@arm.com,\n\tgavin.hu@arm.com",
        "Date": "Thu, 17 Oct 2019 15:08:04 -0500",
        "Message-Id": "<20191017200807.20772-1-honnappa.nagarahalli@arm.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20190906190510.11146-1-honnappa.nagarahalli@arm.com>",
        "References": "<20190906190510.11146-1-honnappa.nagarahalli@arm.com>",
        "Subject": "[dpdk-dev] [PATCH v5 0/3] lib/ring: APIs to support custom element\n\tsize",
        "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": "The current rte_ring hard-codes the type of the ring element to 'void *',\nhence the size of the element is hard-coded to 32b/64b. Since the ring\nelement type is not an input to rte_ring APIs, it results in couple\nof issues:\n\n1) If an application requires to store an element which is not 64b, it\n   needs to write its own ring APIs similar to rte_event_ring APIs. This\n   creates additional burden on the programmers, who end up making\n   work-arounds and often waste memory.\n2) If there are multiple libraries that store elements of the same\n   type, currently they would have to write their own rte_ring APIs. This\n   results in code duplication.\n\nThis patch adds new APIs to support configurable ring element size.\nThe APIs support custom element sizes by allowing to define the ring\nelement to be a multiple of 32b.\n\nThe aim is to achieve same performance as the existing ring\nimplementation. The patch adds same performance tests that are run\nfor existing APIs. This allows for performance comparison.\n\nI also tested with memcpy. x86 shows significant improvements on bulk\nand burst tests. On the Arm platform, I used, there is a drop of\n4% to 6% in few tests. May be this is something that we can explore\nlater.\n\nNote that this version skips changes to other libraries as I would\nlike to get an agreement on the implementation from the community.\nThey will be added once there is agreement on the rte_ring changes.\n\nv5\n - Use memcpy for chunks of 32B (Konstantin).\n - Both 'ring_perf_autotest' and 'ring_perf_elem_autotest' are available\n   to compare the results easily.\n - Copying without memcpy is also available in 1/3, if anyone wants to\n   experiment on their platform.\n - Added other platform owners to test on their respective platforms.\n\nv4\n - Few fixes after more performance testing\n\nv3\n - Removed macro-fest and used inline functions\n   (Stephen, Bruce)\n\nv2\n - Change Event Ring implementation to use ring templates\n   (Jerin, Pavan)\n\nHonnappa Nagarahalli (3):\n  lib/ring: apis to support configurable element size\n  test/ring: add test cases for configurable element size ring\n  lib/ring: copy ring elements using memcpy partially\n\n app/test/Makefile                    |   1 +\n app/test/meson.build                 |   1 +\n app/test/test_ring_perf_elem.c       | 419 ++++++++++++++\n lib/librte_ring/Makefile             |   3 +-\n lib/librte_ring/meson.build          |   3 +\n lib/librte_ring/rte_ring.c           |  45 +-\n lib/librte_ring/rte_ring.h           |   1 +\n lib/librte_ring/rte_ring_elem.h      | 805 +++++++++++++++++++++++++++\n lib/librte_ring/rte_ring_version.map |   2 +\n 9 files changed, 1271 insertions(+), 9 deletions(-)\n create mode 100644 app/test/test_ring_perf_elem.c\n create mode 100644 lib/librte_ring/rte_ring_elem.h",
    "diff": null,
    "prefixes": [
        "v5",
        "0/3"
    ]
}