get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 67383,
    "url": "https://patches.dpdk.org/api/patches/67383/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200330041026.784624-1-dmitry.kozliuk@gmail.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": "<20200330041026.784624-1-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200330041026.784624-1-dmitry.kozliuk@gmail.com",
    "date": "2020-03-30T04:10:17",
    "name": "[RFC,0/9] Windows basic memory management",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1581,
        "url": "https://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200330041026.784624-1-dmitry.kozliuk@gmail.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/67383/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/67383/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 017D1A0562;\n\tMon, 30 Mar 2020 06:10:39 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 883871BFD4;\n\tMon, 30 Mar 2020 06:10:38 +0200 (CEST)",
            "from mail-lf1-f67.google.com (mail-lf1-f67.google.com\n [209.85.167.67]) by dpdk.org (Postfix) with ESMTP id 49ABCF12\n for <dev@dpdk.org>; Mon, 30 Mar 2020 06:10:37 +0200 (CEST)",
            "by mail-lf1-f67.google.com with SMTP id j17so12930754lfe.7\n for <dev@dpdk.org>; Sun, 29 Mar 2020 21:10:37 -0700 (PDT)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.googlemail.com with ESMTPSA id c22sm6210036lja.86.2020.03.29.21.10.34\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 29 Mar 2020 21:10:35 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=wMMVeSP5sBPjNmgFvQ6GWl3P0Zy7/BJCyG9iQysrGHk=;\n b=qraPUXXOaPGpfbaRIchOaQcIN+pc4fCTuutHQyOeEHu27brWJ4mX6+/T9aOj1HO95t\n W519Zfdxr83+Li4HyGuIhEIyYdMn5d5DCHT8oWl4tlraKQ0mMK5roKrE/plDScQdYvNh\n trQIKjnKRHheofIDUTpfXWS4DRfPbQoK+dK78XOcxNle4wQiz/YaeFtmlZ27hRwpSBsR\n 7tarayyaU2IY+usIRq/yt3fYkFiVMN3iXl3JE80QCbGqXJBnzeClh8X9ViKP1Gp2v/vN\n INUsL+9q1zTJ5E2MPR4x0l9EIzt1bTaGeTtFXERSxLmdmO+zBhgXk+YAUcCDIR0N7rwD\n P4WQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=wMMVeSP5sBPjNmgFvQ6GWl3P0Zy7/BJCyG9iQysrGHk=;\n b=JVE/EuLs3QvbwSIfYJYI47tXv+mKMSa8AOqzk4DOKudMb8M8FYuissWe38fYarNuSZ\n KQ0rPQfKtC0msg8UdqC4PHTRV/StDtNHDJi+jA0XAxtBI0mI2Oqnoq7hQkZNUl9AiQ+w\n naxzGJ9jYtduaTmRQ2/4ROqtlF0t2vEOyXWwB7BCjx1kIFsQAtfXyhnPTrLi/Bi0W35i\n RxZH9baoR/Ps+TARNqsWA4YDCYE3Kmj2wwu3peTMgUJVOyx6lf3uc7f+SgHMhnS+5V3v\n tAHwc1itpz3Uopxvvnso81TyyDCExkbSFn+4n3quYwk0ItbsRTe+/7MpaYAE/HHu03of\n sA6A==",
        "X-Gm-Message-State": "AGi0PuZlsBd/nHQwhGx62MAf8/akovFJ46Y8RGrBDav2vgW4fuhcprGT\n +Q7VBZGA1Ee6SnSyuf04cYkCScr5jE4=",
        "X-Google-Smtp-Source": "\n APiQypIFQ/+7VtjDDx+ouGBBs34szVxaUHin1aDLrWvyuvix0FWi2xnU4GpfteQ0f1p3W9AIv0dUxQ==",
        "X-Received": "by 2002:ac2:5ede:: with SMTP id d30mr6700260lfq.157.1585541436118;\n Sun, 29 Mar 2020 21:10:36 -0700 (PDT)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "\"Dmitry Malloy (MESHCHANINOV)\" <dmitrym@microsoft.com>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "Date": "Mon, 30 Mar 2020 07:10:17 +0300",
        "Message-Id": "<20200330041026.784624-1-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [RFC PATCH 0/9] Windows basic memory management",
        "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 <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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This RFC implements basic MM with the following features:\n\n* Hugepages are dynamically allocated in user-mode.\n* IOVA is always PA, obtained through kernel-mode driver.\n* No 32-bit support (presumably not demanded).\n* No multi-process support. Note that without --in-memory EAL MM\n  will create files in current working (runtime) directory.\n* No-huge mode for testing with no IOVA available. IOVA could be obtained\n  using Address Windowing Extensions, but it is doubtfully demanded.\n\nRoadmap for Windows [1] proposes that memory management (MM) should be\nimplemented in basic and advanced stages:\n\n1. Basic MM must be sufficient for core libraries and network PMDs:\n2. Advanced MM could address features missing from basic stage.\n\nAdvanced memory management discussion is out of scope of this RFC.\nWindows community calls suggest is will be focused on security and IOMMU\nsupport. I will post a separate thread with background and suggestions.\nCc'ing Dmitry Malloy (MESHCHANINOV) nevertheless.\n\nBecause netUIO is not yet committed to dpdk-kmods, the first commit\nintroduces a new simple driver, virt2phys. It will almost certainly\nbecome a part of netUIO once it is available for patches. Until then, it\nmust be installed according to documentation provided with the patch.\nUser-mode code locates the driver interface by GUID, so transition from\nvirt2phys to netUIO should not require changes to DPDK.\n\nHugepages allocation on Windows requires some privilege setup. Please\nrefer to documentation provided in the \"initialize hugepage info\" patch.\n\nNew EAL public functions for memory mapping are introduced. Their\nimplementation for Linux and FreeBSD is identical. The upcoming patch series\nreorganizing EAL directories will help fixing that [2].\n\nWindows MM duplicates quite a lot of code from Linux EAL:\n\n* eal_memalloc_alloc_seg_bulk\n* eal_memalloc_free_seg_bulk\n* calc_num_pages_per_socket\n* rte_eal_hugepage_init\n\nNeed input if it should be left as-is to evolve independently, or some\n\"common to memory hot-plug\" code should be factored out. This\nduplication may be reduced naturally when advanced MM is implemented.\n\nNotes on checkpatch warnings:\n\n* No space after comma / no space before closing parent in macros---\n  definitely a false-positive, unclear how to suppress this.\n\n* Issues from imported BSD code---probably should be ignored?\n\n* Checkpatch is not run against dpdk-kmods (Windows drivers).\n\n[1]: http://core.dpdk.org/roadmap/windows/\n[2]: https://patchwork.dpdk.org/project/dpdk/list/?series=9070\n\nDmitry Kozlyuk (8):\n  eal/windows: do not expose private EAL facilities\n  eal/windows: improve CPU and NUMA node detection\n  eal/windows: initialize hugepage info\n  eal: introduce internal wrappers for file operations\n  eal: introduce memory management wrappers\n  eal/windows: fix rte_page_sizes with Clang on Windows\n  eal/windows: replace sys/queue.h with a complete one from FreeBSD\n  eal/windows: implement basic memory management\n\n config/meson.build                            |   12 +-\n doc/guides/windows_gsg/build_dpdk.rst         |   20 -\n doc/guides/windows_gsg/index.rst              |    1 +\n doc/guides/windows_gsg/run_apps.rst           |   47 +\n lib/librte_eal/common/eal_common_fbarray.c    |   57 +-\n lib/librte_eal/common/eal_common_memory.c     |   50 +-\n lib/librte_eal/common/eal_private.h           |  116 +-\n lib/librte_eal/common/include/rte_memory.h    |   69 +\n lib/librte_eal/common/malloc_heap.c           |    1 +\n lib/librte_eal/freebsd/eal/eal.c              |   40 +\n lib/librte_eal/freebsd/eal/eal_memory.c       |  118 +-\n lib/librte_eal/linux/eal/eal.c                |   40 +\n lib/librte_eal/linux/eal/eal_memory.c         |  117 ++\n lib/librte_eal/meson.build                    |    4 +\n lib/librte_eal/rte_eal_exports.def            |  119 ++\n lib/librte_eal/rte_eal_version.map            |    4 +\n lib/librte_eal/windows/eal/eal.c              |  152 +++\n lib/librte_eal/windows/eal/eal_hugepages.c    |  108 ++\n lib/librte_eal/windows/eal/eal_lcore.c        |  187 ++-\n lib/librte_eal/windows/eal/eal_memalloc.c     |  423 ++++++\n lib/librte_eal/windows/eal/eal_memory.c       | 1166 +++++++++++++++++\n lib/librte_eal/windows/eal/eal_mp.c           |  103 ++\n lib/librte_eal/windows/eal/eal_thread.c       |    1 +\n lib/librte_eal/windows/eal/eal_windows.h      |  113 ++\n lib/librte_eal/windows/eal/include/pthread.h  |    2 +\n lib/librte_eal/windows/eal/include/rte_os.h   |   48 +-\n .../windows/eal/include/rte_virt2phys.h       |   34 +\n .../windows/eal/include/rte_windows.h         |   43 +\n .../windows/eal/include/sys/queue.h           |  663 +++++++++-\n lib/librte_eal/windows/eal/include/unistd.h   |    3 +\n lib/librte_eal/windows/eal/meson.build        |   15 +\n 31 files changed, 3626 insertions(+), 250 deletions(-)\n create mode 100644 doc/guides/windows_gsg/run_apps.rst\n create mode 100644 lib/librte_eal/windows/eal/eal_hugepages.c\n create mode 100644 lib/librte_eal/windows/eal/eal_memalloc.c\n create mode 100644 lib/librte_eal/windows/eal/eal_memory.c\n create mode 100644 lib/librte_eal/windows/eal/eal_mp.c\n create mode 100644 lib/librte_eal/windows/eal/eal_windows.h\n create mode 100644 lib/librte_eal/windows/eal/include/rte_virt2phys.h\n create mode 100644 lib/librte_eal/windows/eal/include/rte_windows.h",
    "diff": null,
    "prefixes": [
        "RFC",
        "0/9"
    ]
}