get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 55589,
    "url": "http://patches.dpdk.org/api/patches/55589/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20190628090124.16849-4-mattias.ronnblom@ericsson.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": "<20190628090124.16849-4-mattias.ronnblom@ericsson.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190628090124.16849-4-mattias.ronnblom@ericsson.com",
    "date": "2019-06-28T09:01:22",
    "name": "[v4,3/5] eal: improve entropy for initial PRNG seed",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "da70b2f4b08d42fc77d034e1bbb0250f86c9ff78",
    "submitter": {
        "id": 1077,
        "url": "http://patches.dpdk.org/api/people/1077/?format=api",
        "name": "Mattias Rönnblom",
        "email": "mattias.ronnblom@ericsson.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20190628090124.16849-4-mattias.ronnblom@ericsson.com/mbox/",
    "series": [
        {
            "id": 5220,
            "url": "http://patches.dpdk.org/api/series/5220/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5220",
            "date": "2019-06-28T09:01:20",
            "name": "Pseudo-random number generation improvements",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/5220/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/55589/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/55589/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 2800F1B9C3;\n\tFri, 28 Jun 2019 11:01:46 +0200 (CEST)",
            "from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58])\n\tby dpdk.org (Postfix) with ESMTP id DEFAD1B99C\n\tfor <dev@dpdk.org>; Fri, 28 Jun 2019 11:01:31 +0200 (CEST)",
            "from ESESSMB505.ericsson.se (Unknown_Domain [153.88.183.123])\n\tby sessmg22.ericsson.net (Symantec Mail Security) with SMTP id\n\t26.64.06303.B67D51D5; Fri, 28 Jun 2019 11:01:31 +0200 (CEST)",
            "from ESESSMR504.ericsson.se (153.88.183.126) by\n\tESESSMB505.ericsson.se (153.88.183.193) with Microsoft SMTP Server\n\t(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1713.5; Fri, 28 Jun 2019 11:01:29 +0200",
            "from ESESBMB502.ericsson.se (153.88.183.169) by\n\tESESSMR504.ericsson.se (153.88.183.126) with Microsoft SMTP Server\n\t(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1713.5; Fri, 28 Jun 2019 11:01:29 +0200",
            "from selio1a020.lmera.ericsson.se (153.88.183.153) by\n\tsmtp.internal.ericsson.com (153.88.183.185) with Microsoft SMTP\n\tServer id\n\t15.1.1713.5 via Frontend Transport; Fri, 28 Jun 2019 11:01:30 +0200",
            "from breslau.lmera.ericsson.se (breslau.lmera.ericsson.se\n\t[150.132.109.241])\n\tby selio1a020.lmera.ericsson.se (8.15.1+Sun/8.15.1) with ESMTP id\n\tx5S91SYX019342; Fri, 28 Jun 2019 11:01:29 +0200 (CEST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801;\n\tc=relaxed/relaxed; \n\tq=dns/txt; i=@ericsson.com; t=1561712491; x=1564304491;\n\th=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type:\n\tContent-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:\n\tResent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:\n\tList-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;\n\tbh=oriMSYzD69gLHrQpWqsvfZuMqM7qy5GGOQ+W7kCH8aU=;\n\tb=axKpiD3JZAYuhYH8SAkjGKdcEpHhhwrBuA+d9/QHSsynBlE1wNpf3gJWv+EQo3c9\n\t7BwO9AVrcbgf8fCf4afVUw5Tu20aTsAAznXnw4EHFhmfPzvmOaHJVn7+rqLW2aYA\n\thVqy3DGCGvpFTNtrg1KUkklR0SJV+u5ssEVek+lwxOs=;",
        "X-AuditID": "c1b4fb3a-b6bb79e00000189f-00-5d15d76ba0bd",
        "From": "=?utf-8?q?Mattias_R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<nhorman@tuxdriver.com>, <stephen@networkplumber.org>,\n\t<david.marchand@redhat.com>, <bruce.richardson@intel.com>,\n\t<thomas@monjalon.net>, =?utf-8?q?Mattias_R=C3=B6nnblom?=\n\t<mattias.ronnblom@ericsson.com>",
        "Date": "Fri, 28 Jun 2019 11:01:22 +0200",
        "Message-ID": "<20190628090124.16849-4-mattias.ronnblom@ericsson.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20190628090124.16849-1-mattias.ronnblom@ericsson.com>",
        "References": "<20190605104400.24484-1-mattias.ronnblom@ericsson.com>\n\t<20190628090124.16849-1-mattias.ronnblom@ericsson.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Brightmail-Tracker": "H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42KZGbG9Wjf7umisQet2CYsbq+wttq/oYrN4\n\t92k7k8Wt5pNsFovvyFl8enCCxYHN49eCpawei/e8ZPI4dnMau0fPyXlMHu/3XWXzuPJ9NWMA\n\tWxSXTUpqTmZZapG+XQJXxqypbcwFz0QrlndNZ2lgXCnUxcjJISFgIjH90mXWLkYuDiGBo4wS\n\tHQvOMUM43xgl5iyZhOB8PP2QCcK5yChx/G4DI4RzmVHizOYNrCDD2AQ8JSa/62YBsUUEhCSW\n\tfrzMDlLELHCNUeLrpRfMIAlhASeJk+8Xs4PYLAKqEu+3r2ICsXmB4mtvzmKFuEpeYvWGA2D1\n\tnALOEl1re8HqhQSqJX6eeMgGUS8ocXLmE7BlzAKaEq3bf7ND2PISzVtnM0PUa0ncX/KFeQKj\n\t8CwkLbOQtMxC0rKAkXkVo2hxanFxbrqRkV5qUWZycXF+nl5easkmRmDUHNzy22oH48HnjocY\n\tBTgYlXh4U3eLxgqxJpYVV+YeYpTgYFYS4ZU8JxIrxJuSWFmVWpQfX1Sak1p8iFGag0VJnHe9\n\t978YIYH0xJLU7NTUgtQimCwTB6dUA6PKDtcHN3Yp8Xz6VelWZODvwXHcRzsg6q6C6sp7PJuM\n\tWf0WR9SfqxBV379s0SONyXU1eoEK/NnzT7gU/c+ZwrVU2yXT1CfXnC/dOFdutfzsu2zXFG6t\n\tObtj8mf1TfEs4V5z5hsf4Ag+GSl6ZOpJr56S9vpXXb/KHO5PUpwspi/TJn07/FtmpBJLcUai\n\toRZzUXEiAKHYzjmWAgAA",
        "Subject": "[dpdk-dev] [PATCH v4 3/5] eal: improve entropy for initial PRNG seed",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Replace the use of rte_get_timer_cycles() with getentropy() for\nseeding the pseudo-random number generator. getentropy() provides a\nmore truly random value.\n\ngetentropy() requires glibc 2.25 and Linux kernel 3.17. In case\ngetentropy() is not found at compile time, or the relevant syscall\nfails in runtime, the rdseed machine instruction will be used as a\nfallback.\n\nrdseed is only available on x86 (Broadwell or later). In case it is\nnot present, rte_get_timer_cycles() will be used as a second fallback.\n\nOn non-Meson builds, getentropy() will not be used.\n\nSuggested-by: Bruce Richardson <bruce.richardson@intel.com>\nSuggested-by: Stephen Hemminger <stephen@networkplumber.org>\nSigned-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>\nAcked-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n lib/librte_eal/common/rte_random.c | 36 +++++++++++++++++++++++++++++-\n lib/librte_eal/meson.build         |  3 +++\n 2 files changed, 38 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_eal/common/rte_random.c b/lib/librte_eal/common/rte_random.c\nindex 4d3cf5226..e53d96d18 100644\n--- a/lib/librte_eal/common/rte_random.c\n+++ b/lib/librte_eal/common/rte_random.c\n@@ -2,7 +2,11 @@\n  * Copyright(c) 2019 Ericsson AB\n  */\n \n+#ifdef RTE_MACHINE_CPUFLAG_RDSEED\n+#include <x86intrin.h>\n+#endif\n #include <stdlib.h>\n+#include <unistd.h>\n \n #include <rte_branch_prediction.h>\n #include <rte_cycles.h>\n@@ -133,7 +137,37 @@ rte_rand(void)\n \treturn __rte_rand_lfsr258(state);\n }\n \n+static uint64_t\n+__rte_random_initial_seed(void)\n+{\n+#ifdef RTE_LIBEAL_USE_GETENTROPY\n+\tint ge_rc;\n+\tuint64_t ge_seed;\n+\n+\tge_rc = getentropy(&ge_seed, sizeof(ge_seed));\n+\n+\tif (ge_rc == 0)\n+\t\treturn ge_seed;\n+#endif\n+#ifdef RTE_MACHINE_CPUFLAG_RDSEED\n+\tunsigned int rdseed_rc;\n+\tunsigned long long rdseed_seed;\n+\n+\t/* first fallback: rdseed instruction, if available */\n+\trdseed_rc = _rdseed64_step(&rdseed_seed);\n+\n+\tif (rdseed_rc == 1)\n+\t\treturn (uint64_t)rdseed_seed;\n+#endif\n+\t/* second fallback: seed using rdtsc */\n+\treturn rte_get_timer_cycles();\n+}\n+\n RTE_INIT(rte_rand_init)\n {\n-\trte_srand(rte_get_timer_cycles());\n+\tuint64_t seed;\n+\n+\tseed = __rte_random_initial_seed();\n+\n+\trte_srand(seed);\n }\ndiff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build\nindex fa36b20e0..ccd5b85b8 100644\n--- a/lib/librte_eal/meson.build\n+++ b/lib/librte_eal/meson.build\n@@ -18,6 +18,9 @@ deps += 'kvargs'\n if dpdk_conf.has('RTE_USE_LIBBSD')\n \text_deps += libbsd\n endif\n+if cc.has_function('getentropy', prefix : '#include <unistd.h>')\n+\tcflags += '-DRTE_LIBEAL_USE_GETENTROPY'\n+endif\n sources = common_sources + env_sources\n objs = common_objs + env_objs\n headers = common_headers + env_headers\n",
    "prefixes": [
        "v4",
        "3/5"
    ]
}