get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 40995,
    "url": "http://patchwork.dpdk.org/api/patches/40995/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/914a5f584be81d6c129b35bc8e358774854d8960.1528749451.git.anatoly.burakov@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<914a5f584be81d6c129b35bc8e358774854d8960.1528749451.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/914a5f584be81d6c129b35bc8e358774854d8960.1528749451.git.anatoly.burakov@intel.com",
    "date": "2018-06-11T20:55:42",
    "name": "[9/9] memalloc: allocate memory in reverse",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "dd25dd7ad94b6539d034402eb13193d33b52fdb8",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Burakov, Anatoly",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/914a5f584be81d6c129b35bc8e358774854d8960.1528749451.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 85,
            "url": "http://patchwork.dpdk.org/api/series/85/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=85",
            "date": "2018-06-11T20:55:33",
            "name": "mem: reduce memory fragmentation",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/85/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/40995/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/40995/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 D6F311DEBB;\n\tMon, 11 Jun 2018 22:56:06 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n\tby dpdk.org (Postfix) with ESMTP id 08C981D940\n\tfor <dev@dpdk.org>; Mon, 11 Jun 2018 22:55:48 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t11 Jun 2018 13:55:48 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby orsmga005.jf.intel.com with ESMTP; 11 Jun 2018 13:55:45 -0700",
            "from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com\n\t[10.237.217.45])\n\tby irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\tw5BKthPd026392 for <dev@dpdk.org>; Mon, 11 Jun 2018 21:55:43 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w5BKthdp021631\n\tfor <dev@dpdk.org>; Mon, 11 Jun 2018 21:55:43 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w5BKthpF021627\n\tfor dev@dpdk.org; Mon, 11 Jun 2018 21:55:43 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,211,1526367600\"; d=\"scan'208\";a=\"231737140\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Mon, 11 Jun 2018 21:55:42 +0100",
        "Message-Id": "<914a5f584be81d6c129b35bc8e358774854d8960.1528749451.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "In-Reply-To": [
            "<cover.1528749451.git.anatoly.burakov@intel.com>",
            "<cover.1528749451.git.anatoly.burakov@intel.com>"
        ],
        "References": [
            "<cover.1528749451.git.anatoly.burakov@intel.com>",
            "<cover.1528749451.git.anatoly.burakov@intel.com>"
        ],
        "Subject": "[dpdk-dev] [PATCH 9/9] memalloc: allocate memory in reverse",
        "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://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Currently, all hugepages are allocated from lower VA address to\nhigher VA address, while malloc heap allocates from higher VA\naddress to lower VA address. This results in heap fragmentation\nover time due to multiple reserves leaving small space below the\nallocated elements.\n\nFix this by allocating VA memory from the top, thereby reducing\nfragmentation and lowering overall memory usage.\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n lib/librte_eal/linuxapp/eal/eal_memalloc.c | 3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c\nindex 8c11f98c9..d35fb52c4 100644\n--- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c\n+++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c\n@@ -682,7 +682,8 @@ alloc_seg_walk(const struct rte_memseg_list *msl, void *arg)\n \tneed = wa->n_segs;\n \n \t/* try finding space in memseg list */\n-\tcur_idx = rte_fbarray_find_next_n_free(&cur_msl->memseg_arr, 0, need);\n+\tcur_idx = rte_fbarray_find_prev_n_free(&cur_msl->memseg_arr,\n+\t\t\tcur_msl->memseg_arr.len - 1, need);\n \tif (cur_idx < 0)\n \t\treturn 0;\n \tstart_idx = cur_idx;\n",
    "prefixes": [
        "9/9"
    ]
}