get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 75942,
    "url": "http://patches.dpdk.org/api/patches/75942/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com",
    "date": "2020-08-25T13:57:34",
    "name": "[v3,1/2] doc/linux_gsg: clarify instructions on running as non-root",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "71a04aff6868f99c3ad7e0a56f09bb9986f5cc45",
    "submitter": {
        "id": 4,
        "url": "http://patches.dpdk.org/api/people/4/?format=api",
        "name": "Burakov, Anatoly",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 11782,
            "url": "http://patches.dpdk.org/api/series/11782/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11782",
            "date": "2020-08-25T13:57:34",
            "name": "[v3,1/2] doc/linux_gsg: clarify instructions on running as non-root",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/11782/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/75942/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/75942/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 DD3A0A04B1;\n\tTue, 25 Aug 2020 15:57:40 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A99D5DE3;\n\tTue, 25 Aug 2020 15:57:39 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by dpdk.org (Postfix) with ESMTP id 727D923D;\n Tue, 25 Aug 2020 15:57:37 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 25 Aug 2020 06:57:36 -0700",
            "from silpixa00399498.ir.intel.com (HELO\n silpixa00399498.ger.corp.intel.com) ([10.237.222.52])\n by orsmga004.jf.intel.com with ESMTP; 25 Aug 2020 06:57:34 -0700"
        ],
        "IronPort-SDR": [
            "\n 2jpeFReL71wQWqaLcZf0NZoCu5ijZCaTr3lkaRvht3ufXHu6EMa6CqKBB0SGqOI8ULB36JKfXI\n RlEua6OI/Ddw==",
            "\n QmKTSKXCX8pKt/zbR9NUhKM4c6W8pfDzpVeagxiJwPOc7a3gmcU+peujGNqdjPH+e/BTUTBh4x\n xkbKtyjHP3ZA=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9723\"; a=\"156101575\"",
            "E=Sophos;i=\"5.76,352,1592895600\"; d=\"scan'208\";a=\"156101575\"",
            "E=Sophos;i=\"5.76,352,1592895600\"; d=\"scan'208\";a=\"443637056\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "John McNamara <john.mcnamara@intel.com>,\n Marko Kovacevic <marko.kovacevic@intel.com>, ferruh.yigit@intel.com,\n bruce.richardson@intel.com, padraig.j.connolly@intel.com, stable@dpdk.org",
        "Date": "Tue, 25 Aug 2020 14:57:34 +0100",
        "Message-Id": "\n <242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "\n <196e97d2802cf2250577aaa113b9093b0beadb3d.1598357863.git.anatoly.burakov@intel.com>",
        "References": "\n <196e97d2802cf2250577aaa113b9093b0beadb3d.1598357863.git.anatoly.burakov@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v3 1/2] doc/linux_gsg: clarify instructions on\n\trunning as non-root",
        "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": "The current instructions are slightly out of date when it comes to\nproviding information about setting up the system for using DPDK as\nnon-root, so update them.\n\nCc: stable@dpdk.org\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\nReviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>\nAcked-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n\nNotes:\n    v2:\n    - Moved VFIO description to be first\n\n doc/guides/linux_gsg/enable_func.rst | 54 ++++++++++++++++++++--------\n 1 file changed, 39 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst\nindex b2bda80bb7..a000def6cc 100644\n--- a/doc/guides/linux_gsg/enable_func.rst\n+++ b/doc/guides/linux_gsg/enable_func.rst\n@@ -58,22 +58,42 @@ The application can then determine what action to take, if any, if the HPET is n\n     if any, and on what is available on the system at runtime.\n \n Running DPDK Applications Without Root Privileges\n---------------------------------------------------------\n+-------------------------------------------------\n \n-.. note::\n+In order to run DPDK as non-root, the following Linux filesystem objects'\n+permissions should be adjusted to ensure that the Linux account being used to\n+run the DPDK application has access to them:\n \n-    The instructions below will allow running DPDK as non-root with older\n-    Linux kernel versions. However, since version 4.0, the kernel does not allow\n-    unprivileged processes to read the physical address information from\n-    the pagemaps file, making it impossible for those processes to use HW\n-    devices which require physical addresses\n+*   All directories which serve as hugepage mount points, for example, ``/dev/hugepages``\n \n-Although applications using the DPDK use network ports and other hardware resources directly,\n-with a number of small permission adjustments it is possible to run these applications as a user other than \"root\".\n-To do so, the ownership, or permissions, on the following Linux file system objects should be adjusted to ensure that\n-the Linux user account being used to run the DPDK application has access to them:\n+*   If the HPET is to be used,  ``/dev/hpet``\n \n-*   All directories which serve as hugepage mount points, for example,   ``/mnt/huge``\n+When running as non-root user, there may be some additional resource limits\n+that are imposed by the system. Specifically, the following resource limits may\n+need to be adjusted in order to ensure normal DPDK operation:\n+\n+* RLIMIT_LOCKS (number of file locks that can be held by a process)\n+\n+* RLIMIT_NOFILE (number of open file descriptors that can be held open by a process)\n+\n+* RLIMIT_MEMLOCK (amount of pinned pages the process is allowed to have)\n+\n+The above limits can usually be adjusted by editing\n+``/etc/security/limits.conf`` file, and rebooting.\n+\n+Additionally, depending on which kernel driver is in use, the relevant\n+resources also should be accessible by the user running the DPDK application.\n+\n+For ``vfio-pci`` kernel driver, the following Linux file system objects'\n+permissions should be adjusted:\n+\n+* The VFIO device file, ``/dev/vfio/vfio``\n+\n+* The directories under ``/dev/vfio`` that correspond to IOMMU group numbers of\n+  devices intended to be used by DPDK, for example, ``/dev/vfio/50``\n+\n+For ``igb_uio`` or ``uio_pci_generic`` kernel drivers, the following Linux file\n+system objects' permissions should be adjusted:\n \n *   The userspace-io device files in  ``/dev``, for example,  ``/dev/uio0``, ``/dev/uio1``, and so on\n \n@@ -82,11 +102,15 @@ the Linux user account being used to run the DPDK application has access to them\n        /sys/class/uio/uio0/device/config\n        /sys/class/uio/uio0/device/resource*\n \n-*   If the HPET is to be used,  ``/dev/hpet``\n-\n .. note::\n \n-    On some Linux installations, ``/dev/hugepages``  is also a hugepage mount point created by default.\n+    The instructions above will allow running DPDK with ``igb_uio`` driver as\n+    non-root with older Linux kernel versions. However, since version 4.0, the\n+    kernel does not allow unprivileged processes to read the physical address\n+    information from the pagemaps file, making it impossible for those\n+    processes to be used by non-privileged users. In such cases, using the VFIO\n+    driver is recommended.\n+\n \n Power Management and Power Saving Functionality\n -----------------------------------------------\n",
    "prefixes": [
        "v3",
        "1/2"
    ]
}