get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 84363,
    "url": "http://patchwork.dpdk.org/api/patches/84363/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/863ac4ae1f8a1002b06e092cafba0ddaf6c7b1bd.1605783141.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": "<863ac4ae1f8a1002b06e092cafba0ddaf6c7b1bd.1605783141.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/863ac4ae1f8a1002b06e092cafba0ddaf6c7b1bd.1605783141.git.anatoly.burakov@intel.com",
    "date": "2020-11-19T10:52:44",
    "name": "[v4,1/2] doc: clarify instructions on running as non-root",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "f9876a030b9ebb23be80a3dbc8d033f06a7c2650",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "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/863ac4ae1f8a1002b06e092cafba0ddaf6c7b1bd.1605783141.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 13976,
            "url": "http://patchwork.dpdk.org/api/series/13976/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=13976",
            "date": "2020-11-19T10:52:44",
            "name": "[v4,1/2] doc: clarify instructions on running as non-root",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/13976/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/84363/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/84363/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 E1831A04DD;\n\tThu, 19 Nov 2020 11:52:59 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 64CD45947;\n\tThu, 19 Nov 2020 11:52:52 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by dpdk.org (Postfix) with ESMTP id 59EE72AB;\n Thu, 19 Nov 2020 11:52:49 +0100 (CET)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Nov 2020 02:52:47 -0800",
            "from silpixa00399498.ir.intel.com (HELO\n silpixa00399498.ger.corp.intel.com) ([10.237.222.52])\n by orsmga006.jf.intel.com with ESMTP; 19 Nov 2020 02:52:45 -0800"
        ],
        "IronPort-SDR": [
            "\n O+Evsi2Od8Es0x4NUvpC2rcQH0RW6l73MgB0NqCdN3XUFR6cPT6cF/pDuZshUO240QdFKlYdO/\n ZPpYLwsm52EA==",
            "\n VSPyDn4zTSV6WIg56TtheuZkYMJx+/x7gHhy1Ja62ZxES0GnZ49QePiOOgibJjNxAh/i740Xtj\n cNd10zY+Gz4A=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9809\"; a=\"168697371\"",
            "E=Sophos;i=\"5.77,490,1596524400\"; d=\"scan'208\";a=\"168697371\"",
            "E=Sophos;i=\"5.77,490,1596524400\"; d=\"scan'208\";a=\"330894664\""
        ],
        "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": "ferruh.yigit@intel.com, bruce.richardson@intel.com,\n padraig.j.connolly@intel.com, stable@dpdk.org",
        "Date": "Thu, 19 Nov 2020 10:52:44 +0000",
        "Message-Id": "\n <863ac4ae1f8a1002b06e092cafba0ddaf6c7b1bd.1605783141.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "\n <242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com>",
        "References": "\n <242515b3b0d4ac57ee86cada96af90fb78e14997.1598363848.git.anatoly.burakov@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v4 1/2] doc: clarify instructions on running as\n\tnon-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 | 58 ++++++++++++++++++++--------\n 1 file changed, 41 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst\nindex aab32252ea..29e1b90217 100644\n--- a/doc/guides/linux_gsg/enable_func.rst\n+++ b/doc/guides/linux_gsg/enable_func.rst\n@@ -60,22 +60,51 @@ 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+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+*   All directories which serve as hugepage mount points, for example, ``/dev/hugepages``\n+\n+*   If the HPET is to be used,  ``/dev/hpet``\n+\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 .. note::\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+    The instructions below will allow running DPDK with ``igb_uio`` or\n+    ``uio_pci_generic`` drivers as non-root with older Linux kernel versions.\n+    However, since version 4.0, the kernel does not allow unprivileged processes\n+    to read the physical address information from the pagemaps file, making it\n+    impossible for those processes to be used by non-privileged users. In such\n+    cases, using the VFIO driver is recommended.\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-\n-*   All directories which serve as hugepage mount points, for example,   ``/mnt/huge``\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@@ -84,11 +113,6 @@ 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 \n Power Management and Power Saving Functionality\n -----------------------------------------------\n",
    "prefixes": [
        "v4",
        "1/2"
    ]
}