get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1145,
    "url": "https://patches.dpdk.org/api/patches/1145/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/01d6ff37-3473-43af-aff3-1183d4c4768a@cinfotech.cn/",
    "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": "<01d6ff37-3473-43af-aff3-1183d4c4768a@cinfotech.cn>",
    "list_archive_url": "https://inbox.dpdk.org/dev/01d6ff37-3473-43af-aff3-1183d4c4768a@cinfotech.cn",
    "date": "2014-11-05T15:49:03",
    "name": "[dpdk-dev] 答复: [PATCH] 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": 106,
        "url": "https://patches.dpdk.org/api/people/106/?format=api",
        "name": "lxu",
        "email": "liang.xu@cinfotech.cn"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/01d6ff37-3473-43af-aff3-1183d4c4768a@cinfotech.cn/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1145/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1145/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 743EC7EC4;\n\tWed,  5 Nov 2014 16:39:47 +0100 (CET)",
            "from out1134-217.mail.aliyun.com (out1134-217.mail.aliyun.com\n\t[42.120.134.217]) by dpdk.org (Postfix) with ESMTP id C0AF57E80\n\tfor <dev@dpdk.org>; Wed,  5 Nov 2014 16:39:43 +0100 (CET)",
            "from WS-web (liang.xu@cinfotech.cn[222.65.239.251]) by\n\tr41g06024.xy2.aliyun.com at Wed, 05 Nov 2014 23:49:03 +0800"
        ],
        "X-Alimail-AntiSpam": "AC=CONTINUE; BC=0.02629256|-1; FP=0|0|0|0|0|-1|-1|-1;\n\tHT=r41g08151; MF=liang.xu@cinfotech.cn; PH=DW; RN=2; RT=2; SR=0; ",
        "Date": "Wed, 05 Nov 2014 23:49:03 +0800",
        "From": "\"XU Liang\" <liang.xu@cinfotech.cn>",
        "To": "\"=?UTF-8?B?QnVyYWtvdiwgQW5hdG9seQ==?=\" <anatoly.burakov@intel.com>,\n\t\"dev@dpdk.org\" <dev@dpdk.org>",
        "Message-ID": "<01d6ff37-3473-43af-aff3-1183d4c4768a@cinfotech.cn>",
        "X-Mailer": "Alimail-Mailagent revision 2667797",
        "MIME-Version": "1.0",
        "References": "<1415193919-17361-1-git-send-email-liang.xu@cinfotech.cn>,\n\tC6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com",
        "In-Reply-To": "C6ECDF3AB251BE4894318F4E4512369780C070FA@IRSMSX109.ger.corp.intel.com",
        "x-aliyun-mail-creator": "Webmail4_2670074_M3LTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfMCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzM4LjAuMjEyNS4xMTEgU2FmYXJpLzUzNy4zNg==vN",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-Content-Filtered-By": "Mailman/MimeDel 2.1.15",
        "Subject": "[dpdk-dev] =?utf-8?b?562U5aSN77yaIFtQQVRDSF0gZWFsOiBtYXAgdWlvIHJl?=\n\t=?utf-8?q?sources_after_hugepages_when_the=09base=5Fvirtaddr_is_configure?=\n\t=?utf-8?q?d=2E?=",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "Reply-To": "XU Liang <liang.xu@cinfotech.cn>",
        "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 think the base_virtadd will be carefully selected by user when they need it. So maybe it's not a real problem.  :>The real reason is I can't find a easy way to get the end address of hugepages. Can you give me some suggestions ?------------------------------------------------------------------发件人:Burakov, Anatoly <anatoly.burakov@intel.com>发送时间:2014年11月5日(星期三) 23:10收件人:徐亮 <liang.xu@cinfotech.cn>,dev@dpdk.org <dev@dpdk.org>主 题:RE: [dpdk-dev] [PATCH] eal: map uio resources after hugepages when the\tbase_virtaddr is configured.\nI 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"
    ]
}