get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 105758,
    "url": "https://patches.dpdk.org/api/patches/105758/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220113053630.886638-1-dharmik.thakkar@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": "<20220113053630.886638-1-dharmik.thakkar@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220113053630.886638-1-dharmik.thakkar@arm.com",
    "date": "2022-01-13T05:36:29",
    "name": "[v2,0/1] mempool: implement index-based per core cache",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1108,
        "url": "https://patches.dpdk.org/api/people/1108/?format=api",
        "name": "Dharmik Thakkar",
        "email": "dharmik.thakkar@arm.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220113053630.886638-1-dharmik.thakkar@arm.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/105758/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/105758/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 48AF4A00C4;\n\tThu, 13 Jan 2022 06:36:49 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C3A434117D;\n\tThu, 13 Jan 2022 06:36:48 +0100 (CET)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by mails.dpdk.org (Postfix) with ESMTP id E1E1B40150\n for <dev@dpdk.org>; Thu, 13 Jan 2022 06:36:46 +0100 (CET)",
            "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2BAEAED1;\n Wed, 12 Jan 2022 21:36:46 -0800 (PST)",
            "from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com\n [10.118.13.211])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1AC6A3F5A1;\n Wed, 12 Jan 2022 21:36:46 -0800 (PST)"
        ],
        "From": "Dharmik Thakkar <dharmik.thakkar@arm.com>",
        "To": "",
        "Cc": "dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com,\n ruifeng.wang@arm.com, Dharmik Thakkar <dharmik.thakkar@arm.com>",
        "Subject": "[PATCH v2 0/1] mempool: implement index-based per core cache",
        "Date": "Wed, 12 Jan 2022 23:36:29 -0600",
        "Message-Id": "<20220113053630.886638-1-dharmik.thakkar@arm.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211224225923.806498-1-dharmik.thakkar@arm.com>",
        "References": "<20211224225923.806498-1-dharmik.thakkar@arm.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": "Current mempool per core cache implementation stores pointers to mbufs\nOn 64b architectures, each pointer consumes 8B\nThis patch replaces it with index-based implementation,\nwhere in each buffer is addressed by (pool base address + index)\nIt reduces the amount of memory/cache required for per core cache\n\nL3Fwd performance testing reveals minor improvements in the cache\nperformance (L1 and L2 misses reduced by 0.60%)\nwith no change in throughput\n\nMicro-benchmarking the patch using mempool_perf_test shows\nsignificant improvement with majority of the test cases\n\nNumber of cores = 1:\nn_get_bulk=1 n_put_bulk=1 n_keep=32 %_change_with_patch=18.01\nn_get_bulk=1 n_put_bulk=1 n_keep=128 %_change_with_patch=19.91\nn_get_bulk=1 n_put_bulk=4 n_keep=32 %_change_with_patch=-20.37 (regression)\nn_get_bulk=1 n_put_bulk=4 n_keep=128 %_change_with_patch=-17.01 (regression) \nn_get_bulk=1 n_put_bulk=32 n_keep=32 %_change_with_patch=-25.06 (regression)\nn_get_bulk=1 n_put_bulk=32 n_keep=128 %_change_with_patch=-23.81 (regression)\nn_get_bulk=4 n_put_bulk=1 n_keep=32 %_change_with_patch=53.93\nn_get_bulk=4 n_put_bulk=1 n_keep=128 %_change_with_patch=60.90\nn_get_bulk=4 n_put_bulk=4 n_keep=32 %_change_with_patch=1.64\nn_get_bulk=4 n_put_bulk=4 n_keep=128 %_change_with_patch=8.76\nn_get_bulk=4 n_put_bulk=32 n_keep=32 %_change_with_patch=-4.71 (regression)\nn_get_bulk=4 n_put_bulk=32 n_keep=128 %_change_with_patch=-3.19 (regression)\nn_get_bulk=32 n_put_bulk=1 n_keep=32 %_change_with_patch=65.63\nn_get_bulk=32 n_put_bulk=1 n_keep=128 %_change_with_patch=75.19\nn_get_bulk=32 n_put_bulk=4 n_keep=32 %_change_with_patch=11.75\nn_get_bulk=32 n_put_bulk=4 n_keep=128 %_change_with_patch=15.52\nn_get_bulk=32 n_put_bulk=32 n_keep=32 %_change_with_patch=13.45\nn_get_bulk=32 n_put_bulk=32 n_keep=128 %_change_with_patch=11.58\n\nNumber of core = 2:\nn_get_bulk=1 n_put_bulk=1 n_keep=32 %_change_with_patch=18.21\nn_get_bulk=1 n_put_bulk=1 n_keep=128 %_change_with_patch=21.89\nn_get_bulk=1 n_put_bulk=4 n_keep=32 %_change_with_patch=-21.21 (regression)\nn_get_bulk=1 n_put_bulk=4 n_keep=128 %_change_with_patch=-17.05 (regression)\nn_get_bulk=1 n_put_bulk=32 n_keep=32 %_change_with_patch=-26.09 (regression)\nn_get_bulk=1 n_put_bulk=32 n_keep=128 %_change_with_patch=-23.49 (regression)\nn_get_bulk=4 n_put_bulk=1 n_keep=32 %_change_with_patch=56.28\nn_get_bulk=4 n_put_bulk=1 n_keep=128 %_change_with_patch=67.69\nn_get_bulk=4 n_put_bulk=4 n_keep=32 %_change_with_patch=1.45\nn_get_bulk=4 n_put_bulk=4 n_keep=128 %_change_with_patch=8.84\nn_get_bulk=4 n_put_bulk=32 n_keep=32 %_change_with_patch=-5.27 (regression)\nn_get_bulk=4 n_put_bulk=32 n_keep=128 %_change_with_patch=-3.09 (regression)\nn_get_bulk=32 n_put_bulk=1 n_keep=32 %_change_with_patch=76.11\nn_get_bulk=32 n_put_bulk=1 n_keep=128 %_change_with_patch=86.06\nn_get_bulk=32 n_put_bulk=4 n_keep=32 %_change_with_patch=11.86\nn_get_bulk=32 n_put_bulk=4 n_keep=128 %_change_with_patch=16.55\nn_get_bulk=32 n_put_bulk=32 n_keep=32 %_change_with_patch=13.01\nn_get_bulk=32 n_put_bulk=32 n_keep=128 %_change_with_patch=11.51\n\n\nFrom analyzing the results, it is clear that for n_get_bulk and\nn_put_bulk sizes of 32 there is no performance regression\nIMO, the other sizes are not practical from performance perspective\nand the regression in those cases can be safely ignored\n\nAn attempt to increase the size of mempool to 32GB, by dividing the\nindex by sizeof(uintptr_t), has led to a performance degradation of\n~5% compared to the base performance\n---\nv2:\n - Increase size of mempool to 32GB (Morten)\n - Improve performance for other platforms using dual loop unrolling\n---\nDharmik Thakkar (1):\n  mempool: implement index-based per core cache\n\n lib/mempool/rte_mempool.h             | 150 +++++++++++++++++++++++++-\n lib/mempool/rte_mempool_ops_default.c |   7 ++\n 2 files changed, 156 insertions(+), 1 deletion(-)",
    "diff": null,
    "prefixes": [
        "v2",
        "0/1"
    ]
}