get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 69927,
    "url": "https://patches.dpdk.org/api/patches/69927/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.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": "<11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.com",
    "date": "2020-05-07T10:46:28",
    "name": "[v3] l3fwd-power: add Rx interrupt timeout",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "f133caec3b049a6d22a7cfb8b4da31981aaf03a2",
    "submitter": {
        "id": 4,
        "url": "https://patches.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 9918,
            "url": "https://patches.dpdk.org/api/series/9918/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=9918",
            "date": "2020-05-07T10:46:28",
            "name": "[v3] l3fwd-power: add Rx interrupt timeout",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/9918/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/69927/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/69927/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 101BFA00C5;\n\tThu,  7 May 2020 12:46:32 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A0FC61DBCA;\n\tThu,  7 May 2020 12:46:31 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by dpdk.org (Postfix) with ESMTP id D24081DBC9;\n Thu,  7 May 2020 12:46:29 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 May 2020 03:46:28 -0700",
            "from silpixa00399498.ir.intel.com (HELO\n silpixa00399498.ger.corp.intel.com) ([10.237.222.52])\n by orsmga005.jf.intel.com with ESMTP; 07 May 2020 03:46:27 -0700"
        ],
        "IronPort-SDR": [
            "\n cR/O90PJgDsCIYSj04mIEOzF3vO/cRRhqIe0reMKZUY6B0s+ipbAct5AXHzYe982m0pd+S5v0z\n GfQO5GRp2aAw==",
            "\n s8/zxIekcVS87qNH0pC0ULCZ0SOSFGFenav3igM4Ky1ht4EWhLYtrwp65WDs3N56cnD8GYcEBd\n 2+vIj2uGnv3g=="
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.73,363,1583222400\"; d=\"scan'208\";a=\"435243918\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "David Hunt <david.hunt@intel.com>,\n\tstable@dpdk.org",
        "Date": "Thu,  7 May 2020 11:46:28 +0100",
        "Message-Id": "\n <11d12e160790fbf3e6d1abae121c33e82bd18d8c.1588848367.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "\n <f98eb89eb043810e5b4c523a51408a2c053cf490.1588243784.git.anatoly.burakov@intel.com>",
        "References": "\n <f98eb89eb043810e5b4c523a51408a2c053cf490.1588243784.git.anatoly.burakov@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v3] l3fwd-power: add Rx interrupt timeout",
        "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": "Currently, thread waiting on an interrupt does not have a timeout, so\nit will not ever wake up until traffic arrives. This means that, when\ntime comes to exit the application, it will not quit unless there\nhappens to be traffic coming in and waking up the thread from sleep.\n\nFix it so that the interrupt thread sleeps for 10ms before waking up\nand attempting to poll again. Additionally, remove the log message\nto avoid spamming about entering interrupt mode.\n\nFixes: 613ce6691c0d (\"examples/l3fwd-power: implement proper shutdown\")\nCc: stable@dpdk.org\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\nAcked-by: David Hunt <david.hunt@intel.com>\n---\n\nNotes:\n    v3:\n    - Turns out that log message was important, so\n      bring it back, but prevent spam\n    v2:\n    - Remove log spam\n\n examples/l3fwd-power/main.c | 19 ++++++++++++++-----\n 1 file changed, 14 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c\nindex 293b3da4ae..23685c48fc 100644\n--- a/examples/l3fwd-power/main.c\n+++ b/examples/l3fwd-power/main.c\n@@ -823,17 +823,24 @@ power_freq_scaleup_heuristic(unsigned lcore_id,\n static int\n sleep_until_rx_interrupt(int num)\n {\n+\t/*\n+\t * we want to track when we are woken up by traffic so that we can go\n+\t * back to sleep again without log spamming.\n+\t */\n+\tstatic bool timeout;\n \tstruct rte_epoll_event event[num];\n \tint n, i;\n \tuint16_t port_id;\n \tuint8_t queue_id;\n \tvoid *data;\n \n-\tRTE_LOG(INFO, L3FWD_POWER,\n-\t\t\"lcore %u sleeps until interrupt triggers\\n\",\n-\t\trte_lcore_id());\n+\tif (!timeout) {\n+\t\tRTE_LOG(INFO, L3FWD_POWER,\n+\t\t\t\t\"lcore %u sleeps until interrupt triggers\\n\",\n+\t\t\t\trte_lcore_id());\n+\t}\n \n-\tn = rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, num, -1);\n+\tn = rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, num, 10);\n \tfor (i = 0; i < n; i++) {\n \t\tdata = event[i].epdata.data;\n \t\tport_id = ((uintptr_t)data) >> CHAR_BIT;\n@@ -844,6 +851,7 @@ sleep_until_rx_interrupt(int num)\n \t\t\t\" port %d queue %d\\n\",\n \t\t\trte_lcore_id(), port_id, queue_id);\n \t}\n+\ttimeout = n == 0;\n \n \treturn 0;\n }\n@@ -1306,7 +1314,8 @@ main_loop(__rte_unused void *dummy)\n \t\t\t\t\t/**\n \t\t\t\t\t * start receiving packets immediately\n \t\t\t\t\t */\n-\t\t\t\t\tgoto start_rx;\n+\t\t\t\t\tif (likely(!is_done()))\n+\t\t\t\t\t\tgoto start_rx;\n \t\t\t\t}\n \t\t\t}\n \t\t\tstats[lcore_id].sleep_time += lcore_idle_hint;\n",
    "prefixes": [
        "v3"
    ]
}