get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1142,
    "url": "https://patches.dpdk.org/api/patches/1142/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.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": "<C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com",
    "date": "2014-11-05T15:10:12",
    "name": "[dpdk-dev] eal: map uio resources after hugepages when the base_virtaddr is configured.",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": true,
    "hash": "da4b545ddf85a122e02e0e6fcf68dd8b230bb003",
    "submitter": {
        "id": 4,
        "url": "https://patches.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1142/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1142/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id EA4327E80;\n\tWed,  5 Nov 2014 16:00:55 +0100 (CET)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 862995947\n\tfor <dev@dpdk.org>; Wed,  5 Nov 2014 16:00:53 +0100 (CET)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga102.jf.intel.com with ESMTP; 05 Nov 2014 07:08:36 -0800",
            "from irsmsx102.ger.corp.intel.com ([163.33.3.155])\n\tby orsmga002.jf.intel.com with ESMTP; 05 Nov 2014 07:10:14 -0800",
            "from irsmsx110.ger.corp.intel.com (163.33.3.25) by\n\tIRSMSX102.ger.corp.intel.com (163.33.3.155) with Microsoft SMTP\n\tServer (TLS) id 14.3.195.1; Wed, 5 Nov 2014 15:10:13 +0000",
            "from irsmsx109.ger.corp.intel.com ([169.254.13.101]) by\n\tIRSMSX110.ger.corp.intel.com ([169.254.15.3]) with mapi id\n\t14.03.0195.001; Wed, 5 Nov 2014 15:10:13 +0000"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.07,320,1413270000\"; d=\"scan'208\";a=\"631961460\"",
        "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
        "To": "lxu <liang.xu@cinfotech.cn>, \"dev@dpdk.org\" <dev@dpdk.org>",
        "Thread-Topic": "[dpdk-dev] [PATCH] eal: map uio resources after hugepages when\n\tthe\tbase_virtaddr is configured.",
        "Thread-Index": "AQHP+PwmmmVWcq3WK0uPxBQDYbZnPZxSH3Pg",
        "Date": "Wed, 5 Nov 2014 15:10:12 +0000",
        "Message-ID": "<C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com>",
        "References": "<1415193919-17361-1-git-send-email-liang.xu@cinfotech.cn>",
        "In-Reply-To": "<1415193919-17361-1-git-send-email-liang.xu@cinfotech.cn>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-originating-ip": "[163.33.239.182]",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "Subject": "Re: [dpdk-dev] [PATCH] eal: map uio resources after hugepages when\n\tthe\tbase_virtaddr is configured.",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://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": "<http://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": "I have a slight problems with this patch.\n\nThe base_virtaddr doesn't necessarily correspond to an address that everything gets mapped to. It's a \"hint\" of sorts, that may or may not be taken into account by mmap. Therefore we can't simply assume that if we requested a base-virtaddr, everything will get mapped at exactly that address. We also can't assume that hugepages will be ordered one after the other and occupy neatly all the contiguous virtual memory between base_virtaddr and base_virtaddr + internal_config.memory - there may be holes, for whatever reasons.\n\nAlso, \n\nThanks,\nAnatoly\n\n-----Original Message-----\nFrom: dev [mailto:dev-bounces@dpdk.org] On Behalf Of lxu\nSent: Wednesday, November 5, 2014 1:25 PM\nTo: dev@dpdk.org\nSubject: [dpdk-dev] [PATCH] eal: map uio resources after hugepages when the base_virtaddr is configured.\n\n---\n lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 9 ++++++++-\n 1 file changed, 8 insertions(+), 1 deletion(-)\n\n \t\t\tif (maps[j].addr != NULL)\n \t\t\t\tfail = 1;\n \t\t\telse {\n-\t\t\t\tmapaddr = pci_map_resource(NULL, fd, (off_t)offset,\n+\t\t\t\tmapaddr = pci_map_resource(requested_addr, fd, (off_t)offset,\n \t\t\t\t\t\t(size_t)maps[j].size);\n \t\t\t\tif (mapaddr == NULL)\n \t\t\t\t\tfail = 1;\n+\t\t\t\telse if (NULL != requested_addr)\n+\t\t\t\t\trequested_addr = (uint8_t *)mapaddr + maps[j].size;\n \t\t\t}\n \n \t\t\tif (fail) {\n--\n1.9.1",
    "diff": "diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\nindex 7e62266..bc7ed3a 100644\n--- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\n+++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\n@@ -289,6 +289,11 @@ pci_uio_map_resource(struct rte_pci_device *dev)\n \tstruct rte_pci_addr *loc = &dev->addr;\n \tstruct mapped_pci_resource *uio_res;\n \tstruct pci_map *maps;\n+\tstatic void * requested_addr = NULL;\n+\tif (internal_config.base_virtaddr && NULL == requested_addr) {\n+\t\trequested_addr = (uint8_t *) internal_config.base_virtaddr \n+\t\t\t+ internal_config.memory;\n+\t}\n \n \tdev->intr_handle.fd = -1;\n \tdev->intr_handle.type = RTE_INTR_HANDLE_UNKNOWN; @@ -371,10 +376,12 @@ pci_uio_map_resource(struct rte_pci_device *dev)\n",
    "prefixes": [
        "dpdk-dev"
    ]
}